如何防止IllegalAccessException?

时间:2016-06-06 12:25:47

标签: java reflection field

我按照JDK方法进行研究:

java.lang.reflect.Field#get
如果基础字段无法访问,

会抛出IllegalAccessException

我是对的,如果我要添加以下行

,我可以保护我的代码免受异常的影响
field.setAccessible(true);

还有其他方法可以获得此异常吗?

1 个答案:

答案 0 :(得分:1)

是的,你是对的,你可以用这种方式保护你的代码,但是,我建议你采取以下方式:

Field field = ...;
boolean accessible = field.isAccessible();
field.setAccessible(true);
//Your code
field.setAccessible(accessible);

使用上述方法只是有点安全,例如,假设您使用的某些API依赖于可访问或无法访问的字段,如果您未设置该字段,该API将无法正常工作回到原来的状态。