Java 这意味着调用null对象的instance方法是什么;

Java 这意味着调用null对象的instance方法是什么;,java,Java,我的程序正在抛出一个NullPointerException。我怀疑调用null对象的instance方法是它抛出null指针异常的原因 有人能解释一下这到底意味着什么吗?这意味着您有如下代码: foo.method(); …并且foo为nullfoo必须引用一个对象实例,以便调用该实例上的方法或访问字段。例如,您必须为foo(非null)分配一些内容,如foo=new foo()或诸如此类。您在未初始化的对象上调用了一个方法。例如,您的代码有一行,如: myObject.callMethod

我的程序正在抛出一个
NullPointerException
。我怀疑调用null对象的instance方法是它抛出null指针异常的原因


有人能解释一下这到底意味着什么吗?

这意味着您有如下代码:

foo.method();

…并且
foo
null
foo
必须引用一个对象实例,以便调用该实例上的方法或访问字段。例如,您必须为
foo
(非
null
)分配一些内容,如
foo=new foo()或诸如此类。

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

myObject.callMethod();
但此“myObject”尚未使用以下行进行初始化:

myObject = new myObjectClass();

请张贴一些代码,如果你想在上下文中更多的答案

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

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


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

当您尝试在调试器中捕获它时,您会看到什么?我的+1也是@Ajay Singh:在调用foo函数之前尝试实例化它。。