В Dozer мы можем упоминать интерфейсы в подсказке во время отображения поля. Как мы можем добиться того же в MapStruct?
Я не могу поставить здесь точный код. Но это похоже, как показано ниже.
У нас есть пример класса домена:
Class A<T extends B> extends C<T>
{
...
};
Где,
B абстрактный класс.
C - это класс, который содержит элемент List, который мы должны отобразить.
Похожая структура классов и интерфейсов на стороне DTO.
Итак, отображение как показано ниже в Dozer:
<mapping>
<class-a>Domain.A</class-a>
<class-b>DTO.A</class-b>
<field>
<a>item</a>
<b>item</b>
<a-hint>Domain.B</a-hint>
<b-hint>DTO.B</b-hint>
</field>
</mapping>
В MapStruct как мы называем интерфейсы, как указано в подсказке в Dozer?
Сценарий:
У нас есть:
public class ShopList<T extends Inp> extends Shop<T>\
{ ... };
где,
Inp - абстрактный класс без полей в нем, например:
public abstract class Inp() { };
Магазин такого класса, как:
public class Shop<T extends ShopInp> implements Serializbale
{ private List<T> items = new ArrayList<T>();
//getters and setters for the items };
ShopInp - это публичный интерфейс без полей, например:
public interface ShopInp {} .
У нас похожая структура классов на стороне DTO и на стороне домена.
Не могли бы вы дать мне знать, как будет выглядеть картограф для вышеуказанного сценария?
В общем, если мы попытаемся отобразить класс ShopList, то как мы обеспечим, чтобы T расширяет ShopInp , а T расширяет Inp также отображаются как часть ShopList?