我按照JDK方法进行研究:
java.lang.reflect.Field#get
如果基础字段无法访问,会抛出IllegalAccessException
。
我是对的,如果我要添加以下行
,我可以保护我的代码免受异常的影响field.setAccessible(true);
还有其他方法可以获得此异常吗?
答案 0 :(得分:1)
是的,你是对的,你可以用这种方式保护你的代码,但是,我建议你采取以下方式:
Field field = ...;
boolean accessible = field.isAccessible();
field.setAccessible(true);
//Your code
field.setAccessible(accessible);
使用上述方法只是有点安全,例如,假设您使用的某些API依赖于可访问或无法访问的字段,如果您未设置该字段,该API将无法正常工作回到原来的状态。