美文网首页
反射(三)

反射(三)

作者: 清沐1412 | 来源:发表于2020-03-06 18:02 被阅读0次

反射(三)

反射还可能会破坏单例模式,单例模式的特征:

  • 私有化构造方法
  • 提供全局唯一的公有访问点

以懒汉模式为例,看一下反射如何破坏单例模式

懒汉单例模式代码:

public class Lazy {

    private static Lazy instance;

    private Lazy(){ }

    public static Lazy getInstance(){
        if (instance==null){
            synchronized (Lazy.class){
                if (instance==null){
                    instance=new Lazy();
                }
            }
        }
        return instance;
    }
}

破坏单例模式:

public class SingletonDestory {
    public static void main(String[] args) {
        Lazy lazyInstance=Lazy.getInstance();
        try {
            Constructor declaredConstructor = Lazy.class.getDeclaredConstructor(null);
            declaredConstructor.setAccessible(true);        //设置私有的构造器,强制访问
            Lazy lazyInstance2= (Lazy) declaredConstructor.newInstance();
            System.out.println(lazyInstance==lazyInstance2);    //嘿嘿,不是一个实例
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

    }
}

相关文章

  • 反射(三)

    反射(三) 反射还可能会破坏单例模式,单例模式的特征: 私有化构造方法 提供全局唯一的公有访问点 以懒汉模式为例,...

  • Java反射详细介绍

    反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介...

  • Java一反射

    目录 一、什么是反射 二、反射的作用和应用场景 三、反射的优缺点 四、使用反射(获取Class对象、获取类的构造方...

  • go语言反射的总结

    首先巴拉巴拉一下golang反射机制的三个定律 1.反射可以从接口类型到反射类型对象 2.反射可以从反射类型对象到...

  • golang反射用法举例(注册插件)

    有关golang反射的内容,网上有大量讲述,请自行google——"golang反射三法则" 下面主要反射在实际中...

  • 反射之三

    总结内容源自以下文章 粗浅看java反射机制 反射机制应用实践 谈谈java反射机制 Java Reflectio...

  • “反射区(三)”

    脾的报警区在鼻头 鼻头发红、酒糟鼻、鼻头肿大,极有可能是脾虚或脾大,一般会伴随头重,脸颊疼...

  • Java反射(三)

    属性或者方法为参数化类型的处理 运行结果

  • Java反射原理学习

    Java 反射原理--获取要反射的方法 我们在调用反射时,一般会有是三个步骤: 创建 Class 对象, 然后获取...

  • java反射技术

    三种获取反射的方法

网友评论

      本文标题:反射(三)

      本文链接:https://www.haomeiwen.com/subject/wbwwrhtx.html