JDK动态代理注意事项
2022/1/31 23:12:38
本文主要是介绍JDK动态代理注意事项,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一个蠢问题,记一下,防止下次再犯。
今天把上周写的一个JDK动态代理的demo拿出来重写看了下,然后修改了重写的invoke方法的返回值,结果启动Main方法时就报错ClassCastException。
折腾来折腾去,愣是没找到原因,后面还是把生产的Proxy文件给复制了一份,然后修改Main方法直接调用复制的Proxy类的方法进行debug。
找到原因如下 :代理是将类的所有方法代理了,这个是重点。
所有方法的返回值都是implement InvocationHandler重写的invoke方法的返回值。
也就是说明,这个invoke方法的返回值不能随便写,按规则来就只能是return method.invoke。
当时也是自己傻逼,翻生成的代理类的代码时就认为是重写的问题,结果想着super.toString执行的时候想岔路了,觉得这块没问题,我……下午5点到10点半,5个半小时……
这篇关于JDK动态代理注意事项的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南