public class InstanceBuilder {
private static final InstanceBuilder INSTANCE = new InstanceBuilder();
private static String name = null;
private InstanceBuilder() {
System.out.println("Setting cons()");
name = "Testing";
}
public static String getName() {
return name;
}
}
public class Driver {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("value is " + InstanceBuilder.getName());
}
}
出力を理解します。コンストラクタで印刷しようとするとTesting
が印刷されますが、public static
メソッドから呼び出すとnull
となります。私はそれをINSTANCE.name
に変更すれば分かります。 しかし、同じコピーを共有する必要があるため、static
変数に直接アクセスすると、なぜ機能しないのか理解したいと思います。 ここには何が欠けていますか?は、Java
静的変数の実行順序のbeacuse疑問に – Kars