小编典典

仅检索在 Java 类中声明的静态字段

all

我有以下课程:

public class Test {
    public static int a = 0;
    public int b = 1;
}

是否可以使用反射仅获取静态字段列表?我知道我可以使用Test.class.getDeclaredFields().
但似乎没有办法确定一个Field实例是否代表一个静态字段。


阅读 109

收藏
2022-08-02

共1个答案

小编典典

你可以这样做:

Field[] declaredFields = Test.class.getDeclaredFields();
List<Field> staticFields = new ArrayList<Field>();
for (Field field : declaredFields) {
    if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
        staticFields.add(field);
    }
}
2022-08-02