/**
* 浅拷贝
* @param source 源对象
* @return desc 目标对象
*/
public static <T, V> V cloneWithoutRecur(T source, V desc) {
if (source==null) {
return null;
}
if (desc==null) {
return null;
}
String str = source.getClass().getName()+desc.getClass().getName();
BeanCopier copier;
if(!BeanCopierMap.containsKey(str)){
copier = BeanCopier.create(source.getClass(), desc.getClass(), false);
BeanCopierMap.put(str, copier);
}else{
copier = BeanCopierMap.get(str);
}
copier.copy(source, desc, null);
return desc;
}
测试
import com.ibm.chas.common.util.ObjectUtil;
import com.ibm.chas.model.biz.adt.dto.EncounterDTO;
import com.ibm.chas.model.meta.system.dto.OrganizationDTO;
public class Test {
public static void main(String args[]) {
EncounterDTO dto1 = new EncounterDTO();
EncounterDTO dto2 = new EncounterDTO();
OrganizationDTO orDto = new OrganizationDTO();
dto1.setEncounterNo("000");
orDto.setOrganizationCode("999");
dto1.setAdmissionOrganizationDTO(orDto);
EncounterDTO dd = ObjectUtil.cloneWithoutRecur(dto1, dto2);
System.out.println(dto1.getAdmissionOrganizationDTO() == dd.getAdmissionOrganizationDTO());
System.out.println(dd.getAdmissionOrganizationDTO().getOrganizationCode());
}
}
true
999
该代码示例展示了如何在Java中使用BeanCopier进行对象的浅拷贝操作,创建了一个静态方法`cloneWithoutRecur`,用于将一个对象的属性值复制到另一个对象。在测试用例中,创建了DTO对象并进行了拷贝,证实了拷贝后对象的关联属性引用保持一致。
1243

被折叠的 条评论
为什么被折叠?



