如何使用反射设置字段值呢?
下文笔者讲述使用反射设置一个字段值的方法分享,如下所示
反射简介
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(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。