3

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

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

Class MyClass {
    public static int staticVariable = 5;
}

类 cls 将始终包含一个具有变量 staticVariable 的类,但它并不总是同一个类。希望你能理解。

4

2 回答 2

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);
    }
}
于 2013-08-20T09:14:42.360 回答
2

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

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

你会在这里捕捉到很多例外情况。

于 2013-08-20T09:09:21.430 回答