如何使用反射设置字段值呢?

书欣 Java经验 发布时间:2023-01-19 21:50:11 阅读数:18736 1
下文笔者讲述使用反射设置一个字段值的方法分享,如下所示

反射简介

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(); 
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16741366405461.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者