获取一个类里面的private static final String
时间: 2024-05-11 13:14:24 浏览: 5
由于private static final String是私有常量,因此无法直接从外部访问。但是,可以使用反射技术来获取它。
以下是一个示例代码,它演示了如何使用反射获取私有常量:
```java
import java.lang.reflect.Field;
public class MyClass {
private static final String MY_CONSTANT = "Hello World";
public static void main(String[] args) throws Exception {
Field field = MyClass.class.getDeclaredField("MY_CONSTANT");
field.setAccessible(true);
String value = (String) field.get(null);
System.out.println(value);
}
}
```
在这个例子中,我们使用反射获取了MyClass类中名为MY_CONSTANT的私有常量的值,并打印了它。在这个例子中,我们使用了以下反射API:
1. `Class.getDeclaredField(String name)`:获取指定名称的类成员变量(包括私有成员)。
2. `Field.setAccessible(boolean flag)`:设置该成员变量的访问权限,使其可以被访问。
3. `Field.get(Object obj)`:获取该成员变量的值。
需要注意的是,我们在获取私有常量的时候,传递了`null`作为`get()`方法的参数,因为常量是静态的,因此不需要传递任何对象实例。如果是获取非静态的私有成员变量,则需要传递一个对象实例。