如何使用反射设置字段值呢?
下文笔者讲述使用反射设置一个字段值的方法分享,如下所示
反射简介
Java的反射(reflection)机制:
指在程序的运行状态中
可以构造任意一个类的对象
可以了解任意一个对象所属的类
可以了解任意一个类的成员变量和方法
可以调用任意一个对象的属性和方法
这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制
反射被视为动态语言的关键
反射设置字段值
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Test {
private Map ttp = new HashMap();
public void test() {
Field declaredField = null;
try {
declaredField = Test.class.getDeclaredField("ttp");
boolean accessible = declaredField.isAccessible();
declaredField.setAccessible(true);
ConcurrentHashMap<Object, Object> concHashMap = new ConcurrentHashMap<Object, Object>();
concHashMap.put("key1", "java265.com");
declaredField.set(this, concHashMap);
Object value = ttp.get("key1");
System.out.println(value);
declaredField.setAccessible(accessible);
} catch (NoSuchFieldException
| SecurityException
| IllegalArgumentException
| IllegalAccessException e) {
e.printStackTrace();
}
}
public static void main(String... args) {
Test test = new Test();
test.test();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


