【发布时间】:2016-01-21 10:51:49
【问题描述】:
当使用反射访问不可见的字段或方法时,更改后恢复原始可访问性值似乎是一种常见的习惯用法:
Field field = ...
boolean origAccessibility = field.getAccessibility();
field.setAccessibility(true);
try {
// access field
} finally {
field.setAccessibility(origAccessibility);
}
我想知道是否有充分的理由恢复原始的可访问性状态。我看到以下情况:
- 编译后的代码仍然无法访问该字段。
- 使用反射访问不可见字段的代码也会调用 setAccessible(true)
- 使用反射来查询方法的可访问性的代码无论如何都可能在执行 try 块时得到错误的结果。
我倾向于认为重置原始状态是没有用的。我错过了什么吗?
【问题讨论】:
标签: java reflection