我想实现一个单例类,您能告诉我:我的实现是正确的吗?如果没有,请告诉我原因。 谢谢
public class Singleton {
private String str ;
private final static Singleton ss = new Singleton();
private Singleton(){
}
public void setStr(String str) {
this.str = str;
}
public String getStr() {
return str;
}
public static Singleton getInstance(){
return ss;
}
}
答案 0 :(得分:1)
实现单例的方式如下:
public class Singleton {
private static Singleton _instance;
private Singleton() {
}
public static Singleton getInstance() {
if (_instance == null) {
_instance = new Singleton();
}
return _instance;
}
答案 1 :(得分:1)
您的实现很好并且是线程安全的。
在静态字段中执行的单例实例为:
private final static Singleton ss = new Singleton();
防止在对象可访问之前执行任何竞争条件,并且其余代码还保证仅创建该类的一个实例,特别是因为此语句是构造函数被调用且构造函数也是私有的。
请注意,这是一个渴望的实例化。您也可以对静态的holder类使用惰性方式,但这确实很麻烦,因为开销几乎为零。
答案 2 :(得分:-2)
公共类Singleton {
ActivityType
}