我想測試一個單例類只創建一個單一的對象。 如何測試班級。如何測試單例類只創建一個對象
下面的代碼
Singleton類: -
public class SpringApplicationContext {
private static ClassPathXmlApplicationContext context = null;
private SpringApplicationContext(){};
public static ClassPathXmlApplicationContext getInstance() {
if (context == null) {
context = new ClassPathXmlApplicationContext(
"spring.xml");
}
return context;
}
}
調用類: -
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = SpringApplicationContext.getInstance();
System.out.println("yup");
}
多次調用'getInstance'並檢查引用上的== ==是否返回true。對於複合對象,您將必須檢查單例內的每個引用類型。 – TheLostMind
請注意,您的實現不是線程安全的。也就是說,兩個線程可以導致創建兩個實例。 – johnnyaug
@TheLostMind - 何時會返回true。只有比較兩個參考時,它纔會返回true。 –