使用java反射查找成员的访问修饰符
private final static long serialId = 1L;
protected String title;
public String FirstName;
Run Code Online (Sandbox Code Playgroud)
我需要知道哪个变量是私有的、受保护的和公共的?
如果您有一个类(在Vlucht下面的代码中),那么您可以使用方法getDeclaredFields() ...然后每个字段实例都可以调用方法getModifiers,如下表中所述。
自 jdk1.5 以来,反射 API 一直是相同的,因此 java8 与反射无关,但更多的是使用流或类似的方式访问字段数组。
如果你真的需要一些人类可读的东西,比如:
私有静态最终
受保护或公共
然后使用System.out.println(Modifier.toString(mod));
System.out.println(Modifier.toString(mod));
public class Vlucht {
private final static long serialId = 1L;
protected String title;
public String FirstName;
public static void main(String[] args) {
Field[] reflectedClass = Vlucht.class.getDeclaredFields();
for (Field field : reflectedClass) {
int mod = field.getModifiers();
System.out.println(mod);
}
}
}
Run Code Online (Sandbox Code Playgroud)