簡體   English   中英

我如何使用mapstruct將枚舉映射到布爾值?

[英]How can I map an enum to a boolean with mapstruct?

我有一些自動生成的枚舉,需要將其映射到MapStruct映射器中的布爾值。 他們像這樣去:

enum YN {
    Y("Y"), N("N")
}

enum ZO {
    _0("0"), _1("1")
}

我嘗試使用@ValueMappings(),但沒有成功:

@ValueMappings({
    @ValueMapping(source="Y", target=true),
    @ValueMapping(source="N", target=false)
)
Boolean map(YN value);

如何實現此映射?

ValueMappings用於兩個Enum之間的映射。 您不能使用它們將Enum映射到其他對象。 對於定義的映射,您將必須自己編寫一個映射。 然后MapStruct可以在其​​他映射器中使用該映射器。

abstract class Mapper {
    Boolean map(YN value) {
        return YN.Y.equals(value);
    }

    Boolean map(ZO value) {
        return ZO.O.equals(value);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM