单例模式,反射破环? (3)

单例模式,反射破环?

它竟然说我现在的这个枚举类中没有空参构造器!

然后就去源码里分析!

单例模式,反射破环?

找到这个class文件!利用javap反编译一下!

单例模式,反射破环?

发现这个也显示有一个空参构造,证明这个也不对,用第三方的工具查看!

单例模式,反射破环?

利用它再吧class文件生成java文件!

单例模式,反射破环?

单例模式,反射破环?

打开这个java文件

单例模式,反射破环?

证明是idea和源码骗了我!

再次尝试破环!

// enum 本身就是一个class类 public enum EnumSingle { INSTANCE; public EnumSingle getInstance(){ return INSTANCE; } } class Test{ public static void main(String[] args) throws Exception { EnumSingle instance1 = EnumSingle.INSTANCE; Constructor<EnumSingle> declaredConstructor = EnumSingle.class.getDeclaredConstructor(String.class,int.class); declaredConstructor.setAccessible(true); EnumSingle instance2 = declaredConstructor.newInstance(); System.out.println(instance1); System.out.println(instance2); } }

单例模式,反射破环?

结论:反射无法破环枚举类!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxwyd.html