我的程序正在抛出NullPointerException
。我怀疑Calling the instance method of a null object
是它抛出空指针异常的原因。
任何人都可以解释这实际意味着什么吗?
答案 0 :(得分:12)
这意味着您的代码如下所示:
foo.method();
...而foo
是null
。 foo
必须引用一个对象实例,以便您调用方法或访问其上的字段。例如,您必须将某些内容分配给foo
(null
以外的内容),例如foo = new Foo();
等。
答案 1 :(得分:1)
Java中有两种类型的方法:静态和实例。可以在没有类的实例的情况下调用静态方法,必须在类的实例上调用实例方法。静态方法不能调用实例方法或使用实例数据,但反之则不然 - 实例方法可以调用静态方法并使用静态数据。
您看到的空指针异常(NPE)是因为您在空引用上调用实例方法。您需要设置对该类(或其子类)的实际对象的引用。
有趣的是,在null引用上调用静态方法是非常合法的。这是非常奇怪的语法,有点误导,但它会起作用。
答案 2 :(得分:0)
您在未初始化的对象上调用了一个方法。例如,您的代码有一行,例如:
myObject.callMethod();
但是这个“myObject”还没有使用如下行来初始化:
myObject = new myObjectClass();
如果您想要更多的上下文答案,请发布一些代码!