无法通过MapStruct从Enum To Boolean生成映射方法

Ton*_*kuk 2 java mapping maven mapstruct

通过使用将一个对象类型转换为另一个对象类型的mapstruct,我可以成功地从枚举到枚举使用.

不幸的是,我无法将Enum转换为Boolaen.我得到以下错误.

"不能映射属性'ChoiceType isPriceHigh’到'java.lang.Boolean的isPriceHigh’考虑到声明/实现的映射方法:'java.lang.Boolean的地图(ChoiceType值)’.

这是我在mapstruct中使用的方法.任何帮助将不胜感激.

干杯Alper

@ValueMappings({
        @ValueMapping(target = "true", source = "YES"),
        @ValueMapping(target = "false", source = "NO")
})
Boolean map(ChoiceType value);
Run Code Online (Sandbox Code Playgroud)

Fil*_*lip 6

@ValueMappings可用于在enum(s)和非对象之间进行映射enum.Boolean在Java中不是一个enum,这就是你得到错误的原因.

为了进行这种映射,您必须为它定义自己的方法.

public interface MyMapper {

    default Boolean map(ChoiceType value) {
        if (value == null) {
            return null;
        }

        switch(value) {
            case YES:
                return true;
            case NO:
            default:
                return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)