查看Java动态代理生成的类

声明:非常感谢yy629 提供的帮助。原文:java的动态代理生成了什么?

 

要查看java动态代理生成的源文件,必须先导出字节码文件然后通过反编译(如jad工具)生成源文件。

 

如何导出动态代理生成的类的字节码文件(*.class)呢?

 

只需要在应用中添加下面一段代码:

 

Field field = System.class.getDeclaredField("props");  
field.setAccessible(true);  
Properties props = (Properties) field.get(null);  
props.put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");  

 

当运行该段代码的程序,会在使用了动态代理的类包中生成对应的动态代理类的字节码。

 

结论:动态代理类会自动地添加上toString,hashCode,equals方法,而且这三个方法都会调用InvocationHandler中的invoke方法。这就是为什么在生成的代理类中调用toString,hashCode,equals都会执行invoke的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值