Tôi có singleton này tôi đang cố gắng để sử dụng, nhưng getInstance dường như có thể trở về null:Java Singleton.getInstance() trả về null?
class Singleton {
public static final String K_LEVEL = "level";
static Singleton instance = new Singleton();
private int level;
static Singleton getInstance() {
return instance;
}
int getLevel() {
return level;
}
void incrementLevel() {
System.out.println("LEVEL INCREASED TO " + ++level);
}
void addToLevel(int x) {
for(int i=0;i<x;i++)
incrementLevel();
}
}
class A {
public static void main(String[] args) {
Singleton s = Singleton.getInstance();
Integer i = Integer.getInteger(Singleton.K_LEVEL);
s.addToLevel(i);
}
}
tôi nghe thực hiện độc thân trong Java là rất khó khăn và dễ bị điều kiện chủng tộc. Mẫu đơn của tôi có bị lỗi không? Gần đây tôi đã thay đổi mã của tôi để trông như thế này, và bây giờ getInstance trả về null đôi khi. Tại sao?
$ java A -Dlevel=1
Exception in thread "main" java.lang.NullPointerException
at A.main(A.java:29)
'System.out.println (i);' ngay trước 's.addToLevel (i);' print là gì? – jlordo