Ana*_*and 4 java null method-call
可能吗?
Object obj=null;
obj.someMethod();
someMethod{/*some code here*/}
Run Code Online (Sandbox Code Playgroud)
您可以在空指针上调用静态方法.在静态方法调用中,指针自然会被完全忽略,但是当某些东西(不看类定义)看起来应该导致NullPointerException运行时,它仍然是一个例子.
class FooObject {
public static void saySomething() {
System.out.println("Hi there!");
}
}
class Main {
public static void main(String[] args) {
FooObject foo = null;
foo.saySomething();
}
}
Run Code Online (Sandbox Code Playgroud)
但只是为了说清楚 - 不,你不能用空指针调用实例方法.保护程序员不受此限制是将Java等语言与C++等"低级语言"区别开来的真正基本保护措施之一.它允许在调用端报告错误,而不是在方法本身内导致一个莫名其妙的段错误/诸如此类错误.
不,我们不能。只要方法不是静态的,它就会抛出 NullPointerException。如果方法是静态的,它将运行。