嗨我嘗試創建一個單例類。但每次都會返回一個新實例。這是我的代碼。我犯了什麼錯誤?爲什麼它每次都會返回新的實例......它應該和我想的一樣。 此處需要幫助。Singleton類每次都會返回新的實例
public final class SingletonA {
private static SingletonA instance;
private SingletonA(){
}
public static SingletonA getInstance() {
if(instance==null)
{
System.out.println("RETURNING NEW INSTANCE OF SingletonA Class");
return new SingletonA();
}
System.out.println("RETURNING OLD INSTANCE OF SingletonA Class");
return instance;
}
}
public class SingletonB {
public static void main(String[] args) {
SingletonA one = SingletonA.getInstance();
System.out.println("1."+one+" | "+one.hashCode());
SingletonA two = SingletonA.getInstance();
System.out.println("2."+two+" | "+two.hashCode());
SingletonA three = SingletonA.getInstance();
System.out.println("3."+three+" | "+three.hashCode());
}
}
// HERE IS THE OUTPUT
RETURNING NEW INSTANCE OF SingletonA Class
[email protected] | 705927765
RETURNING NEW INSTANCE OF SingletonA Class
[email protected] | 366712642
RETURNING NEW INSTANCE OF SingletonA Class
[email protected] | 1829164700
在什麼時候爲'instance'指定一個非空值?第一行中的 – markspace
實例必須分配給= new SingletonA(),而不是每次返回新的SingletonA()。 –