Java 反射式访问最终静态变量,无需初始化

Java 反射式访问最终静态变量,无需初始化,java,android,reflection,Java,Android,Reflection,我试图使用反射从一个类访问一堆最终的静态公共int。然而,这个类没有构造函数——例如android R.id。我正在尝试获取这些类的所有int值,但是由于无法创建类,我似乎无法访问它。我曾考虑过扩展它以创建一个构造函数,但我不确定这是否明智。有什么建议吗?我不能修改R.id或R.array(至少我认为我不应该修改) 提前感谢! Jon这就是你所需要的: Field field = R.id.class.getField("some_var"); int value = field.getInt(

我试图使用反射从一个类访问一堆最终的静态公共int。然而,这个类没有构造函数——例如android R.id。我正在尝试获取这些类的所有int值,但是由于无法创建类,我似乎无法访问它。我曾考虑过扩展它以创建一个构造函数,但我不确定这是否明智。有什么建议吗?我不能修改R.id或R.array(至少我认为我不应该修改)

提前感谢! Jon

这就是你所需要的:

Field field = R.id.class.getField("some_var");
int value = field.getInt(null);
这就是您所需要的:

Field field = R.id.class.getField("some_var");
int value = field.getInt(null);

您不需要构造函数来访问静态变量。可能重复您不需要构造函数来访问静态变量。可能重复的一点是,您可以将“null”传递给get方法来访问静态成员。谢谢!我已经试过了,但是我得到了一个空指针异常,让我得到代码并发布它。。。谢谢关键是,您可以将“null”传递给get方法以访问静态成员。谢谢!我已经试过了,但是我得到了一个空指针异常,让我得到代码并发布它。。。谢谢