如何访问此类只具有Class类型引用的类的静态值

时间:2016-08-26 15:03:06

标签: java class static

考虑到A类:

Class

并且具有引用A类的Class c = A.class; 类型的变量:

CONSTANT

如何使用c变量访问A,而无需构建类 // all these will certainly not work c.CONSTANT; c.getStatic().CONSTANT; 的实例:

POST https://www.googleapis.com/gmail/v1/users/userId/messages/send

2 个答案:

答案 0 :(得分:1)

您可以使用java reflection在运行时获取此类信息。 例如,Reflection允许您检查属于任何类对象的任何字段

在您的情况下,该字段为公开静态,因此以下代码

String constantValue = c.getField("CONSTANT").get(null);

会奏效。

(getField()搜索公共字段; get()需要一个&#34;对象&#34;才能工作;但对于静态字段,参数并不重要;因此它可以为null)< / p>

答案 1 :(得分:0)

获取CONSTANT值的最简单方法是:

c.getDeclaredField("CONSTANT").get(null)

来自Field.get doc:

  

如果底层字段是静态字段,则忽略obj参数;它可能是null。