1、异常描述
今天在调用一个工具方法(用来把entity转为Pojo)时遇到了一个异常:
java.lang.IllegalAccessExceptionjava.lang.IllegalAccessException:Class A can not access a member of class B with modifiers “private”
...
2、分析
虽然反射可以“为所欲为”,但是不允许随意访问private修饰的属性、方法,需要预先设置访问权限。总之是访问修饰符权限不够。
3、方案
方案一、
// if(!field.isAccessible()){
// field.setAccessible(true);
// field.set(obj, v);
// }
方案二、
if(field.trySetAccessible()) {
field.set(obj, v);
}