我用的是JDK11,发现ProxyGenerator不再是public了
有时候需要JDK动态代理时生成的$Proxy0.class文件,而在高版本的JDK中,不知为什么这个类不在是public的,而是默认的class类型。一开始还有点懵,所以后来就把这个类拷贝到自己的包下了以及GetBooleanAction类,之后根据IDE的提示,把里面的方法加上@Override,当然不加也行.
如下图所示,之后就可以调用自己这个包下的类来生成字节码文件了。比如:byte[] proxyClassBytes = ProxyGenerator.generateProxyClass("$Proxy0", new Class[]{Person.class});

本文探讨在JDK11中遇到的ProxyGenerator类不再是public的问题,介绍了如何通过复制该类到自定义包下并调整方法权限,以实现动态代理生成字节码文件的需求。
23万+

被折叠的 条评论
为什么被折叠?



