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

问题描述 投票:-1回答:1

我有一个源类,将字符串属性定义为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个回答
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
}

IMHO CharSequence -String的转换应该是内置在框架中的. 可以考虑在 https:/github.commapstructmapstructissues。.

© www.soinside.com 2019 - 2024. All rights reserved.