Tom*_*ito 5 java null constructor initialization
在构造函数中,指定的最终对象字段是否仍然为空?
class MyClass {
private final Object obj = new Object();
public MyClass() {
System.out.println(obj); // may print null?
}
}
Run Code Online (Sandbox Code Playgroud)
如果是的话,这不是一个错误吗?
正如其他答案所讨论的,不,这不可能发生。但是,有了分配的最终静态字段,它可以。
class MyClass {
private static MyClass myClass = new MyClass();
private static final Object obj = new Object();
public MyClass() {
System.out.println(obj); // will print null once
}
}
Run Code Online (Sandbox Code Playgroud)