我有两个版本的"初始化按需持有人成语":
上面的主要区别是第一个被宣布INSTANCE为私有,但第二个被宣布INSTANCE为公共.
请告诉我应该使用哪一个.
对不起,我没有发现在我的应用程序中使用private和public之间的区别:
public class Singleton {
private int x;
public int getX() {
return x;
}
private Singleton () {}
private static class LazyHolder {
//both private and public works
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return LazyHolder.INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
我唯一要做的就是调用类似的东西Singleton.getInsance().getX(),因此两个版本都有效.因此,我想知道使用它们的情况.