java对象,不要再一个一个的赋值给map了,太麻烦啦,有更轻松的方式

目录

1. 方法一:通过反射的方式实现

2. 方法二:借用hutool工具


1. 方法一:通过反射的方式实现

比如想将UserDoc对象的属性赋值给map的key,对应的属性值赋值给map的value

Map<String,Object> map = new HashMap<>();

Field[] fields = UserDoc.class.getDeclaredFields();

// 遍历字段并添加到map中
for(Field field : fields){
    try {
        field.setAccessible(true);
        map.put(field.getName(),field.get(userDoc));
    }catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    }
}

2. 方法二:借用hutool工具

借用hutool工具需要在pom.xml中引入对应的依赖

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.11</version>
        </dependency>

 

然后使用BeanUtil.beanToMap的方法一步,到位:

 Map<String,Object> map = BeanUtil.beanToMap(userDoc);

当然使用BeanUtil.beanToMap方法,还可以将对应属性字段名称转换为驼峰命名法

 Map<String,Object> map = BeanUtil.beanToMap(userDoc,new HashMap<>(),true,false);

说明:

  • userDoc: 需要转换的Bean对象实例。在这个例子中,userDoc是一个包含用户信息的Java对象
  • new HashMap<>(): 要填充的Map实例。这里创建了一个新的HashMap实例,beanToMap方法将把Bean的属性填充到这个Map中
  • true:  指的是是否将属性名转换为下划线命名法。如果设置为 true,则 Java Bean 的驼峰命名属性(例如 userName)会被转换为下划线命名法(例如 user_name)的键。如果设置为 false,则属性名将保持原样,不会进行转换。
  • false: 这个布尔参数表示是否忽略值为null的字段。如果设置为true,则所有值为null的字段都不会被包含在结果Map中。在这个例子中,它被设置为false,意味着即使字段的值为null,也会被包含在Map中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值