如何使用Java中的反射确定字段是私有的还是受保护的?

Lan*_*ark 1 java reflection

通过这样的回答,我收集到如果没有设置您不能访问私有字段setAccessible(true)。我可以通过确定一个字段是否公开isAccessible()。但是,我如何确定它是公共的还是私人的?

fat*_*thy 7

您可以Field.getModifiers()用来获取字段修饰符。然后,您可以使用Modifier.is*找出:

int modifiers = field.getModifiers();

if(Modifier.isProtected(modifiers)) {
  // protected
}
else if(Modifier.isPrivate(modifiers)) {
  // private 
}
Run Code Online (Sandbox Code Playgroud)