【问题标题】:How to implement a specific type converter?如何实现特定的类型转换器?
【发布时间】:2020-09-13 04:25:10
【问题描述】:

我有一个将字符串属性定义为 CharSequence 的源类(很遗憾)。

所以如下:

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

给我:

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

我怎样才能实现这个映射器方法并让它对我的所有映射器可用,以便我一劳永逸地做到这一点?

【问题讨论】:

标签: java mapstruct


【解决方案1】:

创建一个 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 提交功能请求。

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多