我有两个具有相同字段数和相同字段名的类。 唯一不同的是他们的领域类型。
我需要做的是从一个类获取所有字段值并将它们放入另一个类中。
public class PersonA {
private String name;
private String family;
//here AddressDto package is com.test.project.employer
private AddressDto addressDto;
//here ContactInfo package is com.test.project.employer
private List<ContactInfo> contactInfo;
}
public class PersonB {
private String name;
private String family;
//here AddressDto package is com.test.project.customer
private AddressDto addressDto;
//here ContactInfo package is com.test.project.customer
private List<ContactInfo> contactInfo;
}
外部Dtos中可能还有其他Dtos或者带有自定义Dtos的地图,所以如果内部还有其他dto,我需要管理所有要检查的字段!
我已经完成的工作,适用于Java类和Primitive类型,如String,BigDecimal,int和...但不适用于我的应用程序dtos。
这是我的代码:
PersonA personA = new PersonA();
PersonB personB = new PersonB();
Field[] aFields = personA.getClass().getDeclaredFields();
for (Field field : aFields){
field.setAccessible(true);
Field bField= personB.getClass().getDeclaredField(field.getName());
bField.setAccessible(true);
Object value = field.get(personA);
bField.set(personB, value);
}
我在想的是以递归形式编写它。 我的问题有解决办法吗?