BeanCopier系列之一:特性测试
BeanCopier系列之三:缓存BeanCopier提升性能
当源和目标类的属性类型不同时,不能拷贝该属性,此时我们可以通过实现Converter接口来自定义转换器:
源类和目标类:
public class AccountEntity {
private int id;
private Timestamp createTime;
private BigDecimal balance;
// Getters and setters are omitted
}
public class AccountDto {
private int id;
private String name;
private String createTime;
private String balance;
// Getters and setters are omitted
}
1. 不使用Converter
public class BeanCopierConverterTest {
@Test
public void noConverterTest() {
AccountEntity po = new AccountEntity();
po.setId(1);
po.setCreateTime(new Timestamp(10043143243L));
po.setBalance(BigDecimal.valueOf(4000L));
BeanCopier copier = BeanCopier.create(AccountEntity.class, AccountDto.class, false);
AccountDto dto = new AccountDto();
copier.copy(po, dto, null);
Assert.assertNull(dto.getCreateTime()); // 类型不同,未拷贝
Assert.assertNull(dto.getBalance()); // 类型不同,未拷贝
}
}
2. 使用Converter
基于目标对象的属性出发,如果源对象有相同名称的属性,则调一次convert方法:
package net.sf.cglib.core;
public interface Converter {
// value 源对象属性,target 目标对象属性类,context 目标对象setter方法名
Object convert(Object value, Class target, Object context);
}
@Test
public void converterTest() {
AccountEntity po = new AccountEntity();
po.setId(1);
po.setCreateTime(Timestamp.valueOf("2014-04-12 16:16:15"));
po.setBalance(BigDecimal.valueOf(4000L));
BeanCopier copier = BeanCopier.create(AccountEntity.class, AccountDto.class, true);
AccountConverter converter = new AccountConverter();
AccountDto dto = new AccountDto();
copier.copy(po, dto, converter);
Assert.assertEquals("2014-04-12 16:16:15", dto.getCreateTime());
Assert.assertEquals("4000", dto.getBalance());
}
static class AccountConverter implements Converter {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@SuppressWarnings("rawtypes")
@Override
public Object convert(Object value, Class target, Object context) {
if (value instanceof Integer) {
return (Integer) value;
} else if (value instanceof Timestamp) {
Timestamp date = (Timestamp) value;
return sdf.format(date);
} else if (value instanceof BigDecimal) {
BigDecimal bd = (BigDecimal) value;
return bd.toPlainString();
}
return null;
}
}
注:一旦使用Converter,BeanCopier只使用Converter定义的规则去拷贝属性,所以在convert方法中要考虑所有的属性。
分享到:
相关推荐
《Solid Converter PDF 6.0:高效便捷的PDF转Word工具》 在信息化时代,PDF文档因其优秀的格式保持能力和安全性,被广泛应用于各种场合。然而,有时我们需要将PDF文档转换为可编辑的Word文档,这时就需要借助PDF转...
标题“使用VMware Converter 3.0/4.0 迁移虚拟机”涉及的是将物理服务器(P2V)转换为虚拟机的过程,主要利用VMware提供的转换工具——VMware Converter。VMware Converter是一个强大的工具,允许用户将运行在传统...
工具提供以下14种转换功能:十进制转二进制、十进制转八进制、十进制转十六进制、二进制转十进制、二进制转十六进制、十六进制转十进制、十六进制转二进制;字符串转ASCII码、字符串转Unicode、字符串完全转Unicode...
工具提供以下14种转换功能:十进制转二进制、十进制转八进制、十进制转十六进制、二进制转十进制、二进制转十六进制、十六进制转十进制、十六进制转二进制;字符串转ASCII码、字符串转Unicode、字符串完全转Unicode...
9. **成本效益**:使用StarWind Converter进行虚拟机迁移,企业无需购买额外的硬件或软件许可证,从而降低了迁移成本。 10. **灾难恢复与备份**:转换功能也可以作为灾难恢复计划的一部分,通过将虚拟机备份到不同...
第二步:使用“注册补丁”文件夹中的文件替换掉安装目录中的同名源文件。默认安装目录在:C:\Program Files\SolidDocuments\Solid Converter PDF\SCPDF,将SCPDFCreator.dll和SdAppSrv.dll两个文件复制到安装目录下...
工具提供以下14种转换功能:十进制转二进制、十进制转八进制、十进制转十六进制、二进制转十进制、二进制转十六进制、十六进制转十进制、十六进制转二进制;字符串转ASCII码、字符串转Unicode、字符串完全转Unicode...
二、使用PowerConverter的步骤 1. 安装与启动:下载并安装PowerConverter汉化版,打开软件后,用户会发现界面简洁明了,易于操作。 2. 添加文件:点击“添加”按钮,选择需要转换的WMA或MP3文件,软件会将其添加到...
《VMware Converter:高效P2V迁移利器》 VMware Converter是一款强大的物理到虚拟(P2V)迁移工具,其最新版本"VMware-converter-en-6.3.0-20575345.exe"专为IT专业人员设计,旨在帮助用户将物理服务器、操作系统...
6. 版权声明:Autodesk FBX Converter的使用受到了Autodesk公司的法律声明的约束,用户需要遵守这些声明,以免侵犯Autodesk的知识产权。 7. 商标注册:Autodesk公司拥有多个商标注册,例如Autodesk、123D、3ds Max...
在进行VMware vCenter Converter的使用之前,用户应该详细阅读并理解以上提供的各个知识点,以便能够有效地使用该工具,达到顺利迁移系统的目的。同时,用户还应关注VMware官方网站上提供的最新技术文档,以便获得...
VMware vCenter Converter Standalone 的使用和应用于各类虚拟机设备 VMware vCenter Converter Standalone 是 VMware 公司推出的虚拟机转换工具,旨在帮助用户快速、安全地将物理机或虚拟机转换为 VMware 格式的...
通过使用Solid Converter PDF V3.0,用户可以轻松地将PDF格式的报告、论文、手册等转换为Word文档,便于编辑、注释和分享,这对于那些需要频繁处理PDF文档的工作环境,如教育、出版、设计等行业,尤其具有实用性。...
在使用Solid Converter PDF时,用户需要注意以下几点: - 转换精度:尽管软件力求保持原始布局,但某些复杂的排版和图形可能无法完全还原。 - 版权问题:确保在转换受版权保护的PDF时遵循相关法律法规,尊重原作者...
VMware vCenter Converter Standalone 软件进行...VMware vCenter Converter Standalone 软件是虚拟机迁移的不二之选。该软件提供了简洁的操作步骤和强大的功能,可以轻松地将虚拟机迁移到 VMware vSphere 环境中。
### Vmware Converter使用方法详解 #### 一、引言 ...掌握Vmware Converter的使用方法,不仅能够提升IT运维效率,还能为企业节省成本,促进资源优化配置,是现代数据中心管理不可或缺的技能之一。
VMware vCenter Converter 是一款强大的工具,用于将现有的物理服务器,无论是基于Windows还是Linux操作系统,以及第三方虚拟化平台的映像格式,转换成VMware兼容的虚拟机。这个过程被称为虚拟化,它允许企业在虚拟...
二、Solid Converter PDF的优势 1. 高精度转换:Solid Converter PDF致力于保持原文档的格式和样式,使得转换后的文件几乎与原版无异。 2. 支持批量转换:用户可以一次性选择多个PDF文件进行转换,提高工作效率。 ...
Solid Converter PDF是一款强大的PDF转换工具,专为将PDF文件转换为可编辑的Microsoft Word文档而设计。这款软件提供了用户友好的界面和高效的转换能力,使得处理PDF文档变得更加便捷。以下是关于Solid Converter ...
而当我们需要将Mixamo提供的动画导入到Unreal Engine 4(UE4)时,通常会涉及到一个关键步骤——使用Mixamo Converter。本文将详细讲解如何使用这个工具,以及在UE4中导入和管理Mixamo动画的相关知识点。 首先,...