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)
@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)