这是我的示例代码:
enum A {
A,
}
class TestA {
A a;
public static void main(String[] args) {
final TestA testA = new TestA();
System.out.println(testA.a);
System.out.println(testA.a.A);
}
}
Run Code Online (Sandbox Code Playgroud)
哪个会打印:
null
A
Run Code Online (Sandbox Code Playgroud)
如果未初始化的实例Enum变量的默认值为null,那么访问Enum实例的工作原理是什么?
AA是一个静态变量.使用引用该类实例的变量来访问类的静态变量是一个坏主意,但是被授权,即使它是null.这不仅限于枚举:
Integer i = null;
System.out.println(i.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)
运行正常.但它应该写成
System.out.println(Integer.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)