有什么方法可以做到这一点:
Class cls = MyClass.class;
int variable = cls.staticVariable;
Class MyClass {
public static int staticVariable = 5;
}
类cls将始终包含具有变量staticVariable的类,但它并不总是相同的类。希望你明白。
答案 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);
你可以在这里找到很多例外。