所以,我有三個(gè) 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類的對(duì)象轉(zhuǎn)換為C類的對(duì)象,兩個(gè)堆棧的順序應(yīng)該相同。我知道如何通過額外的結(jié)構(gòu)、循環(huán)等手動(dòng)完成它。但是有什么優(yōu)雅的方法可以通過 Mapstruct 來完成它嗎?
1 回答

慕沐林林
TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
因此,經(jīng)過幾次嘗試,我現(xiàn)在找到的最優(yōu)雅的方法是下一個(gè):
@Mapper
public interface CMapper {
C BtoC(B b);
default Long myFieldConverter(A myField) {
return myField.getId();
}
}
我手動(dòng)調(diào)用 getId() 但至少我沒有迭代集合。
我嘗試用注釋做一些事情,比如
@Mapping(target = "", source = "id")
Long myFieldConverter(A myField);
但還沒有找到要放入目標(biāo)中的內(nèi)容,因?yàn)樽侄尾皇侨魏?bean,而是 Long 沒有任何字段、setter 等。而且我未能找到一種方法來在“目標(biāo)”中放置對(duì)構(gòu)造函數(shù)的引用。
添加回答
舉報(bào)
0/150
提交
取消