BeanUtils.populate将map对象转换成vo对象

简介: BeanUtils.populate将map对象转换成vo对象

BeanUtils.populate将map对象转换成vo对象

📖1.添加依赖

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>

📒代码

商品vo 图片vo

package com.example.helloworld.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Set;

/**
 * 商品dto
 *
 * @author woniu
 */
@Data
public class ProductDto {
   
   

    /**
     * 商品编码
     */
    private String productCode;

    /**
     * 客户编码
     */
    private String customerCode;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 评分
     */
    private BigDecimal score;

    /**
     * 图片
     */
    private Set<ProductImageDto> images;

}
package com.example.helloworld.entity;

import lombok.Data;


/**
 * 商品图片信息
 *
 * @author woniu
 */
@Data
public class ProductImageDto {
   
   


    /**
     * 相对路径
     */
    private String path;

    /**
     * 文件名
     */
    private String fileName;



}

测试类

package com.example.helloworld;

import com.alibaba.fastjson.JSON;
import com.example.helloworld.entity.ProductDto;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

@SpringBootTest
class HelloWorldApplicationTests {
   
   

    @Test
    void contextLoads() {
   
   
        Map<String,Object> map = new HashMap<>();
        ProductDto dto = new ProductDto();
        map.put("productCode","13");
        map.put("customerCode","12");
        map.put("customerName","14");
        map.put("score",new BigDecimal(1));
        try {
   
   
            //将map对象封装成Vo对象
            BeanUtils.populate(dto, map);
        }catch (Exception e){
   
   
            e.printStackTrace();
            System.out.println("出现错误");
        }
        System.out.println(JSON.toJSONString(dto));
    }

}

✒️运行结果

image-20231129114620199

image-20231129115905084

🖲最后总结

🖲要熟练掌握技巧,一定多多坚持练习:骐骥一跃,不能十步;驽马十驾,功在不舍

搞笑点赞

目录
相关文章
|
6月前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
101 3
|
6月前
|
存储 Java
map中存储的是引用,而不是对象本身
该内容是关于Java编程中验证Map存储引用而非复制对象的示例。创建大型List导致内存增加,说明List确实占用空间。通过Person类示例,将不同对象放入Map,改变一个对象的属性后,比较原对象与Map中的键值对,发现两者相等,证明Map保存的是对象引用。
92 5
|
6月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
57 0
|
2月前
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
30 1
ES6中map对象的使用,确实比Object好使哈
|
5月前
|
Java
Java list中的对象转为list,list中的对象转为map
Java list中的对象转为list,list中的对象转为map
103 1
|
5月前
|
安全 Java
如何测试map对象的线程不安全
【6月更文挑战第20天】如何测试map对象的线程不安全
40 0
|
6月前
|
Java
SpringBoot 项目启动初始化一个Map对象到内存
SpringBoot 项目启动初始化一个Map对象到内存
136 1
|
6月前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可为任意类型,有序且支持get、set、has、delete操作;Set存储唯一值,提供add、delete、has方法。两者皆可迭代。示例展示了Map和Set的基本用法,如添加、查询、删除元素。
37 2
|
6月前
|
JavaScript
js Array map映射对象多个属性
js Array map映射对象多个属性
41 0
|
6月前
|
Java
java8 转对象,Java8转Map,Java8转Llist
java8 转对象,Java8转Map,Java8转Llist
38 0