所以,我有三个 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 来完成它吗?
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
因此,经过几次尝试,我现在找到的最优雅的方法是下一个:
@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);
但还没有找到要放入目标中的内容,因为字段不是任何 bean,而是 Long 没有任何字段、setter 等。而且我未能找到一种方法来在“目标”中放置对构造函数的引用。
添加回答
举报
0/150
提交
取消