从存储在Class变量中的类中获取静态变量

时间:2013-08-20 09:06:31

标签: java

有什么方法可以做到这一点:

Class cls = MyClass.class;
int variable = cls.staticVariable;

Class MyClass {
    public static int staticVariable = 5;
}

类cls将始终包含具有变量staticVariable的类,但它并不总是相同的类。希望你明白。

2 个答案:

答案 0 :(得分:4)

这是一个简短的工作实例,通过反思展示了这个概念。

public class ReflectionStatic {

    public static int staticVariable = 5;

    public static void main(String[] args) throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {
        Class<ReflectionStatic> clazz = ReflectionStatic.class;
        int value = clazz.getField("staticVariable").getInt(null);
        System.out.println(value);
    }
}

答案 1 :(得分:2)

是的,但只能通过反射API。

Field f = cls.getField("staticVariable");
int variable = f.getInt(null);

你可以在这里找到很多例外。