有什么办法可以做到这一点:
Class cls = MyClass.class;
int variable = cls.staticVariable;
Class MyClass {
public static int staticVariable = 5;
}
类 cls 将始终包含一个具有变量 staticVariable 的类,但它并不总是同一个类。希望你能理解。
有什么办法可以做到这一点:
Class cls = MyClass.class;
int variable = cls.staticVariable;
Class MyClass {
public static int staticVariable = 5;
}
类 cls 将始终包含一个具有变量 staticVariable 的类,但它并不总是同一个类。希望你能理解。
这是一个简短的工作示例,通过反射演示了该概念。
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);
}
}
是的,但只能通过反射 API。
Field f = cls.getField("staticVariable");
int variable = f.getInt(null);
你会在这里捕捉到很多例外情况。