Java反射得到属性和属性的值和设置属性的值

简介: Java反射得到属性和属性的值和设置属性的值
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * 〈一句话功能简述〉<br> 
 * 〈反射获取值〉
 *
 * @author zhoukai7
 * @create 7/29/18
 * @since 1.0.0
 */
public class ReflecFetchAttr {
    /**
     * 得到属性值
     *
     * @param obj
     */
    public static Map<String, Object> getAttributeValue(Object obj) {

        Map<String, Object> map = new HashMap<String, Object>();
        Class cls = obj.getClass();
        Field[] fields = cls.getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
            try {
                // 得到属性
                Field field = fields[i];
                // 允许访问私有属性
                field.setAccessible(true);
                // 获取属性
                String name = field.getName();
                // 获取属性值
                Object value = field.get(obj);
                map.put(name, value);

            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }

        return map;
    }

    /**
     * 得到属性值
     *
     * @param obj
     */
    public static Map<String, Object> getAttributeValueSide(Object obj) {

        Map<String, Object> map = new HashMap<String, Object>();
        Class cls = obj.getClass();
        Field[] fields = cls.getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
            try {
                // 得到属性
                Field field = fields[i];
                // 允许访问私有属性
                field.setAccessible(true);
                // 获取属性
                String name = field.getName();
                // 获取属性值
                Object value = field.get(obj);
                map.put(String.valueOf(value), name);

            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }

        return map;
    }
}
相关文章
|
1月前
|
网络协议 算法 Java
|
1月前
|
XML Java 数据库连接
谈谈Java反射:从入门到实践,再到原理
谈谈Java反射:从入门到实践,再到原理
58 0
|
1月前
|
Java 程序员 编译器
认识Java 的反射机制
反射Reflection被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构造者,而不是应用程序员。
27 5
|
1月前
|
Java 关系型数据库 MySQL
在Java的反射中,Class.forName和ClassLoader的区别
在Java的反射中,Class.forName和ClassLoader的区别
35 3
|
1月前
|
Java
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
33 0
|
6天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
18 0
|
16天前
|
Java
Java通过反射获取类调用方法
Java通过反射获取类调用方法
18 0
|
17天前
|
Java
java中jar启动设置内存大小java -jar 设置堆栈内存大小
java中jar启动设置内存大小java -jar 设置堆栈内存大小
11 1
|
25天前
|
设计模式 XML 存储
java中的反射机制
java中的反射机制
12 1
|
1月前
|
Java 数据库连接 数据库
什么是 Java 的反射
什么是 Java 的反射
9 1