java反射:通过反射加载的类中的常量变量
我有一个类,它有一堆常量字符串
我需要通过反射加载这个类并检索这些常量。 我可以达到:
controllerClass = Class.forName(constantsClassName);
Object someclass = controllerClass.newInstance();
但是我对如何检索这个类中的字段感到困惑
你可以在下面搜索框中键入要查询的问题!
我有一个类,它有一堆常量字符串
我需要通过反射加载这个类并检索这些常量。 我可以达到:
controllerClass = Class.forName(constantsClassName);
Object someclass = controllerClass.newInstance();
但是我对如何检索这个类中的字段感到困惑
# 1 楼答案
访问字段的快速示例--
# 2 楼答案
以下是一个小例子:
运行这个小程序输出:
以下是一些观察:
对于静态字段,提供给
Field.get()
的对象可以是null
为了简洁起见,我在基类
Exception
中使用了一个异常捕获所有类——您应该在代码中使用显式异常类虽然
Field.get()
通常能像预期的那样工作,但对Field.set()
及其朋友来说,情况并非如此。更具体地说,它将乐于更改常量的值(例如,在类方法中从未修改过的final
字段或private
字段),但由于常量内联,旧值可能仍在使用# 3 楼答案
通过类而不是对象引用了解修饰符
http://download.oracle.com/javase/tutorial/reflect/class/classModifiers.html