如何实现特定的类型转换器?
How to implement a specific type converter?
我有一个源 class 将字符串属性定义为 CharSequence(不幸的是)。
所以如下:
@Mapper(source="charSeq", target="str")
给我:
Can't map property "java.lang.CharSequence charSeq" to "java.lang.String str". Consider to declare/implement a mapping method: "java.lang.String map(java.lang.CharSequence value)"
我如何实现这个映射器方法并使它对我的所有映射器可用,以便我一劳永逸?
创建一个 String-CharSequence 映射器:
@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
}
恕我直言,CharSequence-String 转换应该内置到框架中。考虑在 https://github.com/mapstruct/mapstruct/issues.
提交功能请求
我有一个源 class 将字符串属性定义为 CharSequence(不幸的是)。
所以如下:
@Mapper(source="charSeq", target="str")
给我:
Can't map property "java.lang.CharSequence charSeq" to "java.lang.String str". Consider to declare/implement a mapping method: "java.lang.String map(java.lang.CharSequence value)"
我如何实现这个映射器方法并使它对我的所有映射器可用,以便我一劳永逸?
创建一个 String-CharSequence 映射器:
@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
}
恕我直言,CharSequence-String 转换应该内置到框架中。考虑在 https://github.com/mapstruct/mapstruct/issues.
提交功能请求