java实体类间的转换_java 实体类集合转换和实体类转换
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 实体类集合转换和实体类转换相关推荐
- java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换
为了编程人员的方便及处理数据的安全性,Java特别提供了两个非常有用的工具类: 一.Collections 1.Collections类的特点: 集合框架的工具类.里面定义的都是静态方法. 2.Col ...
- java怎么从数据库中查询_java – 从数据库中检索的实体与查询中的情况相同
我的数据库包含下表: 表: country { code varchar(255) not null primary key }; 类: @Entity public class Country { ...
- java语言用数组接收字符_Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串"Java"就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准J ...
- java 不同时区时间转换_Java对世界不同时区timezone之间时间转换的处理方法
最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...
- 自适应阈值分割(最大类间分割法 + OTSU)
1.定义 最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标两部分,或者 ...
- 详解-OTUS(大津法-最大类间方差)原理及C语言代码实现
灰度图二值化: 我们在对灰度图像进行处理的时候,为了便于观察和分析,经常需要将图像中的目标主体和背景分割开来,变成二值化图像(只有黑和白,黑白图像) 加菲猫--灰度图--二值化 而我们知道灰度图像是有 ...
- 线性判别分析(Linear Discriminant Analysis, LDA)(含类内散度矩阵 类间散度矩阵 全局散度矩阵推导
LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是 ...
- Ostu最大类间方差法的C++实现
一.Ostu的原理 最大类间方差法是由日本学者大津(Nobuyuki Ostu)在1979年提出的,该方法根据计算公式自动计算分割单域值,是一种根据灰度图像自动计算阈值的方法.它按照灰度图像的灰度值等 ...
- android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...
在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...
- Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类
注 : 2019-06-16日 增加第六节 map与实体互转工具类,直接看第6节; 1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象; 注意: 这个方法转换 ...
最新文章
- Java 处理 Exception 的 9 个最佳实践!
- 为什么我的resharper控件安装之后没有显示
- Java 9 尝鲜之JShell交互式编程环境
- Java面试准备:15个Java面试问题
- HTML+CSS+JS实现 ❤️520爱心背景表白网页动画特效❤️
- 【notebook】常用在线notebook总结
- C++命名空间的玩法
- Ubuntu上,如何成功的安装pygrib
- ora创建物化视图 11g版本
- 技术说明的注释有点用,其他的完全是捣乱
- window10设置系统还原点和使用还原点还原系统
- scrapy中代理设置
- Error:Execution failed for task ':app:compileDebugNdk'. Error: NDK integrat
- 导入 xlsx php,php如何使用phpexcel类导入excel表格数据
- 【Java工程中出现问题】XXX has been compiled by a more recent version of the Java Runtime
- 相机响应曲线、ISO详解
- linux 应用层gpio中断_linux下GPIO中断驱动US100传感器--Apple的学习笔记
- Catalan 数之Python演示
- 【每日新闻】阿里云回应大规模故障:运维操作失误 将认真改进 | 分析师:Azure已取代Windows成为微软新的增长点...
- WiFi_WiFi6和WiFi5区别