所以我有三个Java类。
class A {
private Long id;
//getter, setter, etc
}
class B {
private Stack<A> myField;
//getter, setter, etc
}
class C {
private Stack<Long> myField;
}
我想将 B 类的对象转换为 C 类的对象,两个堆栈的顺序应该相同。
我知道如何通过附加结构、循环等手动完成。但是有什么优雅的方法可以通过Mapstruct做到这一点吗?
所以,经过几次尝试,我现在发现的最优雅的方式是下一个:
@Mapper
public interface CMapper {
C BtoC(B b);
default Long myFieldConverter(A myField) {
return myField.getId();
}
}
我手动调用 getId((,但至少我不遍历集合。
我试图用注释做一些事情,比如
@Mapping(target = "", source = "id")
Long myFieldConverter(A myField);
但是还没有找到要放入目标的内容,因为字段不是任何豆子,而是没有任何字段,二传手等的Long。而且我未能找到一种方法在"目标"中引用构造函数。