java—尝试在mapstruct中为目标和源为字符串的所有字段创建通用Map器

moiiocjp  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(479)

我有这样一个要求:对于所有string->stringMap,我需要检查源字符串是否为空,如果为空,我希望返回null。我原以为这样行得通,可惜不行

@Mapping(source = "in", target = ".", qualifiedByName = "stringConverter")
abstract String mapString(String in);

我以为这会产生一个函数

String mapString(String in) {
    if ( in == null ) {
        return null;
    }

    String string = stringConverter(in);

    return string;
}

或者类似的东西。这里stringconverter只检查字符串是否为空,如果为空则返回null,否则返回原始字符串。但反过来我得到的是

String mapString(String in) {
    if ( in == null ) {
        return null;
    }

    String string = new String();

    return string;
}

在使用mapstruct时,是否可以创建一个泛型函数来处理所有字符串字段的Map?

c9x0cxw0

c9x0cxw01#

mapstruct用于Mapbean,而不是用于字符串之间的Map。
您需要编写一个自定义方法来在 String mapstruct将使用该方法。

public class StringConverter {

    public static String map(String value) {
        return (value == null || value.isEmpty()) ? null : value;
    }

}

相关问题