使用Java反射获取类变量
我有以下课程:使用Java反射获取类变量,java,android,Java,Android,我有以下课程: public final class ClassMap { public static final Class HELLO = HelloActivity.class; } 我希望能够访问HelloActivity.class,知道字符串“HELLO”。我尝试了以下方法: Field classField = ClassMap.class.getField("HELLO"); 但它返回一个字段对象。如何取回类对象 谢谢 现在您有了表示字段的字段对象,请询问值,即调
public final class ClassMap {
public static final Class HELLO = HelloActivity.class;
}
我希望能够访问HelloActivity.class
,知道字符串“HELLO”
。我尝试了以下方法:
Field classField = ClassMap.class.getField("HELLO");
但它返回一个字段
对象。如何取回类
对象
谢谢 现在您有了表示字段的
字段
对象,请询问值,即调用
由于您的字段是静态的
,因此obj
参数将被忽略,您应该只给出一个null
值。Javadoc这样说:
如果基础字段是静态字段,则忽略obj
参数;它可能是空的
因此,请这样做:
Field classField = ClassMap.class.getField("HELLO");
Object value = classField.get(null);
你的最终目标有点模糊。您是在尝试获取由
“HELLO”
描述的对象的实例,还是在尝试执行HelloActivity
类中包含的方法?您可能会发现在类中创建一个普通的映射
并使用它而不是使用反射来查找字段更容易。例如Map活动=newhashmap();activities.put(“你好”,HelloActivity.class)是的,我的同事也提出了这个建议,这就是我要做的。谢谢!虽然我可能不会使用反思,但这是对我问题的正确答案。只要它允许我就接受