Java jdk实现动态代理有返回值时 抛空指针异常 但是可以执行其他方法
原因一:代理类中的代码,有返回值的话会有类型强转操作将null转为Integer再转为int,转换实际执行代码为((Integer)null).intValue(),所以会抛出空制针异常,异常就来源于自动拆箱!
另外:像setSessionFactory、getSession()、getSessionFactory()、setHibernateTemplate方法都是被final类型修饰的。所以不能在继承类中重写。(chai’chao)
原因二:在有返回值的情况下,没有在invoke方法中 return 调用invoke方法的值。
就是我犯的一个小错误,本来不想分享的,但是这也是一个抛出空指针异常的点了,不注意就会这样干。
原因二的异常截图:
原因:
解决办法:在invoke方法做一个返回值的返回即可。
我觉得我可能没有解决您的问题,愿意的话可以留言,大家一起来解决哦!
有用点个关注,手留余香!???? ???? ????