我在反射中非常陌生,我对此有疑问:

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).将字段恢复为原始状态

10-06 10:52