Отображение глубоких свойств с промежуточными наборами в дозаторе

Предположим, что у меня есть следующие классы

public class Baz {
  private List<Foo> foos = new ArrayList<Foo>();
}

public class Foo {
  private String string;
}

public class Target {
  private List<String> fooStrings = new ArrayList<String>();
}

Там кто-либо отображается, я могу использовать для, учитывая Baz, отобразить его на целевой класс и получить список строк, содержавшихся в нечто в Baz? Следующее отображение не работает

<mapping>
  <class-a>Baz</class-a>
  <class-b>Target</class-b>
  <field>
    <a>foos.string</a>
    <b>fooStrings</b>
  </field>
</mapping>

Поскольку строка не является свойством foos (который имеет список типов). Я думал бы, что Dozer был бы достаточно умен к, если бы он встретился с набором в глубоком отображении, и цель была также набором, чтобы смочь повредить глубокое имя свойства в два и выполнить итерации через набор для получения дочерней части глубокого отображения от участников набора. По-видимому, нет. Существует ли решение за исключением создания запроса новых функций Dozer?

6
задан Jherico 4 February 2010 в 00:58
поделиться

1 ответ

Вы всегда можете написать свой собственный CustomConverter .

Логично, почему Dozer не может справиться с этим так, как вы ожидаете, поскольку во время выполнения он не имеет информации о типе List foos и не может гарантировать, что каждый объект в списке на самом деле есть Foo .

1
ответ дан 17 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: