BeanUtil拷贝

摘要:
拷贝vo对象一些查询到的数据很多是不需要的,可以创建vo对象,对需要的对象属性进行拷贝maven依赖  org.projectlombok  lombok  1.18.2  provided封装

拷贝vo对象

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

maven依赖

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

封装好的BeanUtil工具类

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

packagecom.seacoders.weigh.commons;

importcom.seacoders.weigh.commons.exception.BeanCopyException;
importorg.springframework.beans.BeanUtils;

importjava.util.ArrayList;
importjava.util.List;

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

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

    /*** 拷贝Bean对象
     * @paramsource 源对象
     * @paramclazz 目标对象额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 newBeanCopyException(e.getMessage());
        } catch(IllegalAccessException e) {
            throw newBeanCopyException(e.getMessage());
        }

    }

    /*** 拷贝List集合
     * @paramsource 源对象集合
     * @paramclazz 目标对象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);
        }
        returnlist;
    }
}

免责声明:文章转载自《BeanUtil拷贝》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇运行 FreeSWITCH关于设置微信分享标题,图标下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++ Primer学习笔记

目录 12.1 动态内存与智能指针 12.1.1 shared_ptr类 12.1.2 直接管理内存 12.1.3 shared_ptr和new结合使用 12.1.4 智能指针和异常 12.1.5 unique_ptr 12.1.6 weak_ptr 12.2 动态数组 12.2.1 new和数组 12.2.2 alllocator类...

图片批量上传,并生成缩略图demo

这是一个 图片批量上传的demo 选择多张图片,一次上传,并且生成缩略图以及原图。 index.php 选择文件  upload.php 上传文件  并生成缩略图  thumbnail.php 返回缩略图到浏览器 index.php 1 <?php 2 session_start(); 3 $_SESSION["file_i...

IDEA异常 -- 汇总

目录 [TOC] Error:java: Compilation failed: internal java compiler error 解决办法: File-->Setting...-->Build,Execution,Deployment-->Compiler-->Java Compiler 设置相应Module的targ...

python--GIL锁

GIL锁 本节目录 一 介绍 二 GIL介绍 三 GIL与Lock 四 GIL与多线程 五 多线程性能测试 一 背景知识 ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads fr...

Python+OpenCV图像处理之图像直方图

(一)图像直方图 要画直方图必须要安装matplotlib库,Matplotlib 是一个 Python 的 2D绘图库。 图像直方图是反映一个图像像素分布的统计表,其横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个...

各种VBA excel 命令、属性、方法

本示例为设置密码窗口 (1)If Application.InputBox("请输入密码:") = 1234 Then        [A1] = 1 '密码正确时执行Else      MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码End If'本示例为设置密码窗口 (1)X = MsgBox("是否真的要结帐?", vbYesNo)...