利用反射破坏单例模式

创建一个单例

public class SingleBean {
    private static SingleBean instance=new SingleBean();
    private SingleBean(){}
    public static SingleBean getInstance(){
        return instance;
    }
}
SingleBean instance = SingleBean.getInstance();
        SingleBean instance2 = SingleBean.getInstance();
        System.out.println(instance==instance2);

运行结果

利用反射破坏该单例

try {
            Class objectClass=SingleBean.class;
            Constructor constructor=objectClass.getDeclaredConstructor();
            constructor.setAccessible(true);
            SingleBean instance=SingleBean.getInstance();
            SingleBean newInstance = (SingleBean) constructor.newInstance();
            System.out.println(instance==newInstance);
        } catch (Exception e) {
            e.printStackTrace();
        }

运行结果

posted @   猪儿虫的幸福生活  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示