如何实现特定类型的转换器?



我有一个将字符串属性定义为CharSequence的源类(不幸的是(。

所以以下内容:

@Mapper(source="charSeq", target="str")

给我:

无法将属性 "java.lang.CharSequence charSeq" 映射到 "java.lang.String str"。考虑声明/实现一个映射方法:"java.lang.String map(java.lang.CharSequence value(">

如何实现此映射器方法并使它可供所有映射器使用,以便一劳永逸地执行此操作?

创建一个字符串字符序列映射器:

@Mapper
public interface CharSequenceMapper {
default String map(CharSequence charSequence) {
return charSequence.toString();
}
default CharSequence map(String string) {
return string;
}
}

并将其与您的映射器一起使用:

@Mapper(uses = CharSequenceMapper.class)
public interface MyMapper {
// some code
}

恕我直言,字符序列字符串转换应该内置到框架中。请考虑在 https://github.com/mapstruct/mapstruct/issues 提交功能请求。

最新更新