【发布时间】:2023-03-09 17:55:02
【问题描述】:
我用 Java 编写了这个程序
public class Why {
public static void test() {
System.out.println("Passed");
}
public static void main(String[] args) {
Why NULL = null;
NULL.test();
}
}
我读到在null 对象上调用方法会导致NullPointerException,但上面的程序没有?为什么是这样?我是不是理解不正确?
【问题讨论】:
-
Java解释器一加载类就创建了一个静态成员变量,此时也进行了初始化。
-
既然你正在学习,你应该熟悉编码约定:java.sun.com/docs/codeconv/html/CodeConventions.doc8.html:具体来说,全大写的名称是为常量保留的。
-
...虽然我想这可能是您的初衷,因为您可能希望
NULL始终为null,在这种情况下您可能想了解@987654328 @ 关键字以及它对字段与局部变量(以及类和方法)的含义。 -
在这里你可以找到静态的编译器级别的实现。 stackoverflow.com/q/21037406/1686291
-
我喜欢它
Why NULL = null;
标签: java static null nullpointerexception