こんにちは私はシングルトンクラスを作ろうとしています。毎回新しいインスタンスが返されます。ここに私のコードです。私は間違いを犯しましたか?なぜ私は新しいインスタンスを毎回返すのか...それは私が考えるのと同じでなければならない。 ヘルプが必要です。シングルトンクラスは毎回新しいインスタンスを返します
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
「インスタンス」には、どの時点でnull以外の値を割り当てますか? – markspace
最初の行のインスタンスは、新しいSingletonA()を毎回返す代わりに、= new SingletonA()に代入する必要があります。 –