java中使用反射将javaBean转为map

news/2024/7/3 0:18:58

java中使用反射将javaBean转为map

key : 字段名称
value: 字段值

 package test.utils;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = StartUpApplication.class,
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class PersontTest {

    @Test
    public void test1() throws Exception {
        Person person = new Person();
        person.setAge(22);
        person.setName("jk");
        System.out.println(person);
        Map<String, Object> map = beanToMap(person);
        System.out.println(map);
    }

    //JavaBean转换为Map
    public static Map<String, Object> beanToMap(Object bean) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        Class<?> cl = bean.getClass();
        //获取指定类的BeanInfo 对象
        BeanInfo beanInfo = Introspector.getBeanInfo(cl, Object.class);
        //获取所有的属性描述器
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor pd : pds) {
            String key = pd.getName();
            Method getter = pd.getReadMethod();
            Object value = getter.invoke(bean);
            map.put(key, value);
        }
        return map;
    }


}


http://www.niftyadmin.cn/n/2131958.html

相关文章

React学习笔记2---生命周期

生命周期函数指在某一个时刻组件会自动调用执行的函数&#xff0c;React的生命周期函数主要有 Initialization(初始化&#xff09;Mounting(挂载&#xff09;Updation(更新&#xff09;Unmounting(卸载&#xff09;父组件 // 在组件即将被挂载到页面的时刻自动执行&#xff0c;…

jdk8本地JVM可视化工具

本地JVM可视化工具 JDK 根目录的 bin 文件夹下的jvisualvm.exe 启动项目进行监控 3.1 启动JConsole&#xff0c;点击jdk/bin 目录下面的jconsole.exe 即可启动

视频转mp4格式转换器如何把其他格式的视频转换成mp4格式

冬天到了&#xff0c;很多人都放弃出去游玩的念头。而选择宅在家里开启冬眠模式。这时很多人无聊时就会选择追剧&#xff0c;追剧是最容易打发时间的娱乐方式之一。最近朋友就遇到一个棘手的问题&#xff0c;他用腾讯视频下载了一个电视&#xff0c;但是导入到手机后却由于格式…

用于机器学习的Python和HDFS

Python平台是MATLAB或Mathematica等封闭源&#xff08;和昂贵的&#xff01;&#xff09;平台的强大替代品。多年来&#xff0c;随着NumPy和SciPy&#xff08;用于一般科学计算&#xff09;和TensorFlow&#xff0c;Keras&#xff0c;Theano和PyTorch等平台的积极开发&#xff…

linux运行ifconfig未找到命令解决

linux运行ifconfig未找到命令解决 需要安装net-tools工具 yum install net-tools

用ethtool 命令解决Linux 网卡丢包【转】

转自&#xff1a;https://blog.csdn.net/chengxuyuanyonghu/article/details/73739516 生产中有一台Linux设备并发比较大&#xff0c;droped包比较多&#xff0c;尤其是在跑游戏数据包的时候&#xff0c;存在严重的丢包现象&#xff0c;怀疑网卡性能不足&#xff0c;在更换设备…

linux查询实时日志

linux查询实时日志 进入到tomcat logs tail -f catalina.out搜索某一字段&#xff0c;后面是指定文件 grep "解密&#xff1a;" catalina.out

jenkins 发布打包部署springBoot(maven)项目

基于 centos 7 安装jenkins(rpm) wget https://pkg.jenkins.io/redhat-stable/jenkins-2.303.1-1.1.noarch.rpm --no-check-certificaterpm 命令安装 rpm -ivh jenkins-2.303.1-1.1.noarch.rpm如果报错&#xff0c;缺少引用 执行以下命令&#xff08;如果无&#xff0c;忽略…