项目场景:
今天在练习Java反射,在使用Java反射获取私有方法时,报了一个IllegalArgumentException的异常
问题描述:
想要通过反射机制调用私有方法,原始报异常的代码如下:
privateMethod.invoke(mClass, "Java Reflect ", 666);
原因分析:
经过一番调查,发现要使用泛型类的空构造方法进行解决,并且newInstance()方法现在已经过时,建议通过构造器调用newInstance()方法
解决方案:
修改代码如下
privateMethod.invoke(mClass.getConstructor().newInstance(), "Java Reflect ", 666);
测试通过