Mapstruct java.util.Stack 转换
Mapstruct java.util.Stack converting
所以,我有三个 Java classes.
class A {
private Long id;
//getter, setter, etc
}
class B {
private Stack<A> myField;
//getter, setter, etc
}
class C {
private Stack<Long> myField;
}
我想将 class B 的对象转换为 class 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);
但还没有找到要放入目标的内容,因为字段不是任何 bean,而是没有任何字段、setter 等的 Long。而且我没能找到在 [=20 中放置对构造函数的引用的方法=].
所以,我有三个 Java classes.
class A {
private Long id;
//getter, setter, etc
}
class B {
private Stack<A> myField;
//getter, setter, etc
}
class C {
private Stack<Long> myField;
}
我想将 class B 的对象转换为 class 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);
但还没有找到要放入目标的内容,因为字段不是任何 bean,而是没有任何字段、setter 等的 Long。而且我没能找到在 [=20 中放置对构造函数的引用的方法=].