加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么我出乎意料地能够创建我的单例类的多个实例?

发布时间:2020-12-15 02:03:10 所属栏目:Java 来源:网络整理
导读:根据我的知识,Singleton Design Pattern意味着我们只能创建一个类的单个对象. 以下代码成功运行,没有任何错误/异常. 我希望代码失败,因为SingletonExample类有一个私有的默认构造函数. public class SingletonExample { private static SingletonExample sin
根据我的知识,Singleton Design Pattern意味着我们只能创建一个类的单个对象.

以下代码成功运行,没有任何错误/异常.

我希望代码失败,因为SingletonExample类有一个私有的默认构造函数.

public class SingletonExample {
    private static SingletonExample singletonInstance;

    private SingletonExample() {
    }

    public static SingletonExample getSingletonInstance() {
        if (null == singletonInstance) {
            System.out.println("Creating new instance");
            singletonInstance = new SingletonExample();
        }
        return singletonInstance;
    }

    public void printSingleton(){
        System.out.println("Inside print Singleton");
    }

    public static void main(String a[])  {
        SingletonExample singObj1 = new SingletonExample();
        SingletonExample singObj2 = new SingletonExample();
    }
}

我的代码有问题吗?

解决方法

因为您的main方法在类SingletonExample中,所以主代码可以访问私有构造函数.

尝试将main方法移动到另一个类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读