1.首先要先创建一个函数式接口接口(@FunctionalInterface),回调方法

@FunctionalInterface

public interface BeanCopyUtilCallBack {

/**

* 定义默认回调方法

* @param t

* @param s

*/

void callBack(S t, T s);

}

2.下面开始创建一个类并继承BeanUtils工具类,并编写三个方法

/**

* List集合转换

*/

public class BeanCopyUtil extends BeanUtils {

/**

* 集合数据的拷贝

* @param sources: 数据源类

* @param target: 目标类::new(eg: UserVO::new)

* @return

*/

public static List copyListProperties(List sources, Supplier target) {

return copyListProperties(sources, target, null);

}

/**

* 带回调函数的集合数据的拷贝(可自定义字段拷贝规则)

* @param sources: 数据源类

* @param target: 目标类::new(eg: UserVO::new)

* @param callBack: 回调函数

* @return

*/

public static List copyListProperties(List sources, Supplier target, BeanCopyUtilCallBack callBack) {

List list = new ArrayList<>(sources.size());

for (S source : sources) {

T t = target.get();

copyProperties(source, t);

list.add(t);

if (callBack != null) {

// 回调

callBack.callBack(source, t);

}

}

return list;

}

/**

* 转换实体类

* @param sources 数据源类

* @param target 目标类::new(eg: UserVO::new);

* @return

*/

public static T copyPropertiesSet(S sources, Supplier target) {

T t = target.get();

copyProperties(sources, t);

return t;

}

}

3.调用集合转换方法

List user = new ArrayList<>();

//调用转换集合

List users = BeanCopyUtil.copyListProperties(user,UserVos::new);

//调用转换实体类

UserVo user1 =new UserVo();

UserVos users1 = BeanCopyUtil.copyPropertiesSet(user1,UserVos::new);

java实体类间的转换_java 实体类集合转换和实体类转换相关推荐

  1. java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换

    为了编程人员的方便及处理数据的安全性,Java特别提供了两个非常有用的工具类: 一.Collections 1.Collections类的特点: 集合框架的工具类.里面定义的都是静态方法. 2.Col ...

  2. java怎么从数据库中查询_java – 从数据库中检索的实体与查询中的情况相同

    我的数据库包含下表: 表: country { code varchar(255) not null primary key }; 类: @Entity public class Country { ...

  3. java语言用数组接收字符_Java基础——数组应用之字符串String类

    字符串String的使用 Java字符串就是Unicode字符序列,例如串"Java"就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准J ...

  4. java 不同时区时间转换_Java对世界不同时区timezone之间时间转换的处理方法

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  5. 自适应阈值分割(最大类间分割法 + OTSU)

    1.定义 最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标两部分,或者 ...

  6. 详解-OTUS(大津法-最大类间方差)原理及C语言代码实现

    灰度图二值化: 我们在对灰度图像进行处理的时候,为了便于观察和分析,经常需要将图像中的目标主体和背景分割开来,变成二值化图像(只有黑和白,黑白图像) 加菲猫--灰度图--二值化 而我们知道灰度图像是有 ...

  7. 线性判别分析(Linear Discriminant Analysis, LDA)(含类内散度矩阵 类间散度矩阵 全局散度矩阵推导

    LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是 ...

  8. Ostu最大类间方差法的C++实现

    一.Ostu的原理 最大类间方差法是由日本学者大津(Nobuyuki Ostu)在1979年提出的,该方法根据计算公式自动计算分割单域值,是一种根据灰度图像自动计算阈值的方法.它按照灰度图像的灰度值等 ...

  9. android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...

    在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...

  10. Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类

    注 : 2019-06-16日 增加第六节 map与实体互转工具类,直接看第6节; 1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象; 注意: 这个方法转换 ...

最新文章

  1. Java 处理 Exception 的 9 个最佳实践!
  2. 为什么我的resharper控件安装之后没有显示
  3. Java 9 尝鲜之JShell交互式编程环境
  4. Java面试准备:15个Java面试问题
  5. HTML+CSS+JS实现 ❤️520爱心背景表白网页动画特效❤️
  6. 【notebook】常用在线notebook总结
  7. C++命名空间的玩法
  8. Ubuntu上,如何成功的安装pygrib
  9. ora创建物化视图 11g版本
  10. 技术说明的注释有点用,其他的完全是捣乱
  11. window10设置系统还原点和使用还原点还原系统
  12. scrapy中代理设置
  13. Error:Execution failed for task ':app:compileDebugNdk'. Error: NDK integrat
  14. 导入 xlsx php,php如何使用phpexcel类导入excel表格数据
  15. 【Java工程中出现问题】XXX has been compiled by a more recent version of the Java Runtime
  16. 相机响应曲线、ISO详解
  17. linux 应用层gpio中断_linux下GPIO中断驱动US100传感器--Apple的学习笔记
  18. Catalan 数之Python演示
  19. 【每日新闻】阿里云回应大规模故障:运维操作失误 将认真改进 | 分析师:Azure已取代Windows成为微软新的增长点...
  20. WiFi_WiFi6和WiFi5区别

热门文章

  1. 今年五一假期,预计有超过240000000人次出游
  2. 无线充电器出口欧盟CE认证RED指令测试分析
  3. 面经汇总——逻辑推理题
  4. javaEE初阶---JavaScript
  5. j2medev“用户界面和多媒体”版面问题整理[0407更新]
  6. 云计算:程序员重回个人英雄时代,国内云计算平台即将搭建运行。
  7. mumu模拟器android调试,HBuilderX 通过mumu 模拟器调试 uni-app(win版)
  8. 趣头条野蛮生长逐渐降速 后续如何提振股价走势?
  9. 移动平台3G手机网站前端开发布局技巧汇总
  10. 数字麦克风和阵列拾音技术的应用