这是什么意思调用null对象的实例方法"

时间:2011-02-07 11:01:41

标签: java

我的程序正在抛出NullPointerException。我怀疑Calling the instance method of a null object是它抛出空指针异常的原因。

任何人都可以解释这实际意味着什么吗?

3 个答案:

答案 0 :(得分:12)

这意味着您的代码如下所示:

foo.method();

...而foonullfoo必须引用一个对象实例,以便您调用方法或访问其上的字段。例如,您必须将某些内容分配给foonull以外的内容),例如foo = new Foo();等。

答案 1 :(得分:1)

Java中有两种类型的方法:静态和实例。可以在没有类的实例的情况下调用静态方法,必须在类的实例上调用实例方法。静态方法不能调用实例方法或使用实例数据,但反之则不然 - 实例方法可以调用静态方法并使用静态数据。

您看到的空指针异常(NPE)是因为您在空引用上调用实例方法。您需要设置对该类(或其子类)的实际对象的引用。

有趣的是,在null引用上调用静态方法是非常合法的。这是非常奇怪的语法,有点误导,但它会起作用。

答案 2 :(得分:0)

您在未初始化的对象上调用了一个方法。例如,您的代码有一行,例如:

myObject.callMethod();

但是这个“myObject”还没有使用如下行来初始化:

myObject = new myObjectClass();

如果您想要更多的上下文答案,请发布一些代码!