/**
* 浅拷贝
* @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