Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java反射获取类变量_Java_Android - Fatal编程技术网

使用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)