我在反射中非常陌生,我对此有疑问:
public void setAccessible(boolean flag) throws SecurityException
此方法具有
boolen
参数标志,该标志指示任何字段或方法的新可访问性。例如,如果尝试从类外部访问类的
private
方法,则使用getDeclaredMethod
获取该方法,并将可访问性设置为true
,以便可以调用它,例如:method.setAccessible(true);
现在,在哪种情况下,我们应该使用method.setAccessible(false);
,例如,当存在public
方法并且将可访问性设置为false时,可以使用它。但是,这有什么需要呢?我的理解清楚吗?如果没有使用
method.setAccessible(false)
,那么我们可以更改方法签名,例如:public void setAccessible() throws SecurityException
最佳答案
场景:使用Field.setAccessible(true),
删除了私有(private)字段的保护,并使用Field.setAccessible(false).
将字段恢复为原始状态