BeanUtil拷贝

拷贝vo对象

一些查询到的数据很多是不需要的,可以创建vo对象,对需要的对象属性进行拷贝

maven依赖

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.2</version>
  <scope>provided</scope>
</dependency>

封装好的BeanUtil工具类

vo对象的字段名要跟源对象的一样

package com.seacoders.weigh.commons;

import com.seacoders.weigh.commons.exception.BeanCopyException;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author
 * @date
 *
 * 对Spring BeanUtils扩展,支持List集合拷贝
 */
public class BeanUtil {

    public static void copyProperties(Object source, Object target) {
        BeanUtils.copyProperties(source, target);
    }

    /**
     * 拷贝Bean对象
     * @param source 源对象
     * @param clazz 目标对象额Class
     * @param <T>
     * @return
     */
    public static <T> T copyProperties(Object source, Class<T> clazz){
        Object target = null;
        try {
            target = clazz.newInstance();
            copyProperties(source, target);
            return (T)target;
        } catch (InstantiationException e) {
            throw new BeanCopyException(e.getMessage());
        } catch (IllegalAccessException e) {
            throw new BeanCopyException(e.getMessage());
        }

    }

    /**
     * 拷贝List集合
     * @param source 源对象集合
     * @param clazz 目标对象Class
     * @param <T>
     * @return
     */
    public static <T> List<T> copyListProperties(List source, Class<T> clazz) {
        List<T> list = new ArrayList<>();
        for (Object o : source) {
            Object target = copyProperties(o, clazz);
            list.add((T)target);
        }
        return list;
    }
}

原文地址:https://www.cnblogs.com/ssjf/p/10177842.html

时间: 2024-10-17 15:09:55

BeanUtil拷贝的相关文章

BeanUtil体会

把字符串(非纯数字组成的字符串,带有字符的那种)拷贝到int属性中,int属性值设为0 把字符串(纯数字组成的),赋值给double类型,可以直接转换,int类型也可以直接转换成double类型 但是如果bean里面没有的类型,则转换不了?像miniui里面 传过来好多不是bean中的参数 所以是否可以这样,在miniui中,先把Data对应的json转换成map<String,Object>,然后再根据model反射出来的属性值,找到object,判断如果object为空,则怎么怎么样,如果

内省和BeanUtil

什么是内省? 内省(Introspector)是Java语言对JavaBean类属性.事件的处理方法. Java提供了一套API来访问某个属性的getter/setter方法,这些API存放在java.beans中 主要的类和方法 Introspector类: 主要方法:用于获取BeanInfo 对象 BeanInfo beanInfo = Introspector.getBeanInfo(UserInfo.class); Beaninfo类 PropertyDescriptor[] pd2 =

【Java】【50】BeanUtils.copyProperties();只从源对象中拷贝自己为null的值

前言: 关联博客: [Java][3]BeanUtils.copyProperties():将一个实体类的值复制到另外一个实体类 - 花生喂龙 - 博客园https://www.cnblogs.com/huashengweilong/p/10690509.html 关联博客里的是最简单的两个实体类赋值的情况,将oldEntity的值,赋给newEntity.而项目中有时的要求是,newEntity里的对应字段有值,就用newEntity里的:没有值,才将oldEntity的值赋给newEntit

你还在用BeanUtils进行对象属性拷贝?

一.背景 1.1 对象拷贝概念 Java中,数据类型分为值类型(基本数据类型)和引用类型,值类型包括int.double.byte.boolean.char等简单数据类型,引用类型包括类.接口.数组等复杂类型. 对象拷贝分为浅拷贝(浅克隆)与深拷贝(深克隆). 浅拷贝与深拷贝差异 1.2 示例前准备 源对象属性类UserDO.class(以下示例,源对象都用这个) @Datapublic class UserDO { private int id; private String userName

PHP拷贝目录下的所有文件

//目录拷贝函数到任意目录function dir1($filename,$dest){ static $dirname; $dirname.=$dest; //连接头(第一层目录) static $dir; //中间变量 if(file_exists($filename)){ //如果文件存在 if(is_dir($filename)){ //如果是目录,则先创建目录然后遍历 $dirnames=basename($filename); //取最后的目录或者文件名,链接到要转移到的第一层目录

C# 备份、还原、拷贝远程文件夹

最近一直都很忙,非常抱歉好久没有写过博客了.最近遇到拷贝远程文件的一些工作,比如我们发布的web站点的时候,开发提供一个zip压缩包,我们需要上传到远程的服务器A,然后在部署(文件拷贝)到远程环境B和C,ABC都在一个局域网里面. 首先我们需要一个工具类来转换文件路径,本地地址与远程地址的转换 比如192.168.0.1上的D:\test 转换 为\\192.168.0.1\D$\test,文件路径的拼接, public class PathUtil { public static string

【转载】C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. #include <iostream>using namespace std;class CExample {private:     int a;public:     CExample(int b)     { a=b;}     void Show ()     {        cout<

对IO流的操作(文件大小,拷贝,移动,删除)

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.SequenceInputStream; class LjyFileClass { /*LjyFileClass工具类使用需知: * * 1.计算

angular参考手册拷贝

AngularJS 参考手册 AngularJS 指令 本教程用到的 AngularJS 指令 : 指令 描述 ng-app 定义应用程序的根元素. ng-bind 绑定 HTML 元素到应用程序数据 ng-bind-html 绑定 HTML 元素的 innerHTML 到应用程序数据,并移除 HTML 字符串中危险字符 ng-bind-template 规定要使用模板替换的文本内容 ng-blur 规定 blur 事件的行为 ng-change 规定在内容改变时要执行的表达式 ng-check