如何获取课程的所有字段

时间:2017-05-24 13:51:37

标签: java reflection

我有两个具有相同字段数和相同字段名的类。 唯一不同的是他们的领域类型。

我需要做的是从一个类获取所有字段值并将它们放入另一个类中。

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);
}

我在想的是以递归形式编写它。 我的问题有解决办法吗?

0 个答案:

没有答案