繁体   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