如何测试singleton类只创建一个对象

时间:2016-10-03 10:52:57

标签: java singleton

我想测试一个单例类只创建一个对象。 如何测试课程。

这是代码

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");
}

1 个答案:

答案 0 :(得分:0)

你可以在对象上检查toString的sysout,它打印对象的引用,所以对于所有不同的对象,它的输出应该是相同的。

    public static void main(String[] args) {
        ClassPathXmlApplicationContext ctx1 = SpringApplicationContext.getInstance();
        ClassPathXmlApplicationContext ctx2 = SpringApplicationContext.getInstance();

        System.out.println("yup");

        if(System.identityHashCode(ctx1) == System.identityHashCode(ctx2)){

        System.out.println("Hash code is same");

    }
        }