如何使用java反射查找成员的访问修饰符

Sur*_*aja 3 java reflection

使用java反射查找成员的访问修饰符

private final static long serialId = 1L;
protected String title;
public String FirstName;
Run Code Online (Sandbox Code Playgroud)

我需要知道哪个变量是私有的、受保护的和公共的?

ΦXo*_*a ツ 6

如果您有一个类(在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)

在此输入图像描述