Мне интересно, как преобразовать Список одного типа в массив другого типа в Java с помощью Dozer.Два типа имеют одинаковые имена / типы свойств.Например, рассмотрим эти два класса.
public class A{
private String test = null;
public String getTest(){
return this.test
}
public void setTest(String test){
this.test = test;
}
}
public class B{
private String test = null;
public String getTest(){
return this.test
}
public void setTest(String test){
this.test = test;
}
}
Я пробовал это без удачи.
List<A> listOfA = getListofAObjects();
Mapper mapper = DozerBeanMapperSingletonWrapper.getInstance();
B[] bs = mapper.map(listOfA, B[].class);
Я также пытался использовать класс CollectionUtils.
CollectionUtils.convertListToArray(listOfA, B.class)
Никто не работает на меня, кто-нибудь может сказать мне, что я делаю неправильно?Функция mapper.map работает нормально, если я создаю два класса-обертки, один из которых содержит список, а другой - ab [].См. Ниже:
public class C{
private List<A> items = null;
public List<A> getItems(){
return this.items;
}
public void setItems(List<A> items){
this.items = items;
}
}
public class D{
private B[] items = null;
public B[] getItems(){
return this.items;
}
public void setItems(B[] items){
this.items = items;
}
}
Это работает как ни странно ...
List<A> listOfA = getListofAObjects();
C c = new C();
c.setItems(listOfA);
Mapper mapper = DozerBeanMapperSingletonWrapper.getInstance();
D d = mapper.map(c, D.class);
B[] bs = d.getItems();
Как мне делать то, что я хочу, без использования классов-обёрток (C & D)?Должен быть более легкий путь ... Спасибо!