public class JavaPuzzler { public static void main(String[] args) { JavaPuzzler javaPuzzler = null; System.out.println(javaPuzzler.get()); } private static String get(){ return "i am a java puzzler"; } }
你可能认为它应该抛出NullPointerException,因为main方法调用了初始化的局部变量的get()方法
为null,并且您无法在null上调用方法.
但是如果你运行这个程序,你将会看到它打印出“我是一个java puzzler”.
有人可以给我答案吗
提前致谢.
解决方法
在代码示例中,get()是属于该类的静态成员,而不是一个实例.您不需要一个实例来调用该方法.
public static String get() // belongs globally to class,no instance required public String get() // belongs to instance