赞
踩
开发中,都会遇到对象拷贝的需求,本工具类支持嵌套对象的拷贝
依赖
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.79</version>
- </dependency>
- package com.example.demo.utils;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
-
- import java.util.List;
- import java.util.Objects;
-
- public class BeanUtils {
-
- /**
- * 批量拷贝
- *
- * @param list 拷贝集合
- * @param clazz 拷贝之后的类型
- * @return 拷贝之后的列表
- */
- public static <T> List<T> copyProperties(List<?> list, Class<T> clazz) {
- if (Objects.isNull(list)) {
- return null;
- }
- JSONArray jsonArray = (JSONArray) JSON.toJSON(list);
- return jsonArray.toJavaList(clazz);
- }
-
- /**
- * 单个拷贝
- *
- * @param o 拷贝对象
- * @param clazz 拷贝之后的类型
- * @return 拷贝之后的对象
- */
- public static <T, O> T copyProperties(O obj, Class<T> clazz) {
- if (Objects.isNull(obj)) {
- return null;
- }
- JSONObject jsonObject = (JSONObject) JSON.toJSON(obj);
- return jsonObject.toJavaObject(clazz);
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。