尝试在mapstruct中为目标和源为String的所有字段创建通用映射器



我有这样的要求,其中对于所有的String->字符串映射,我需要检查源字符串是否为空,如果为空,我想返回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时,是否可以创建一个通用函数来处理所有字符串字段的映射?

MapStruct用于映射bean,而不用于字符串之间的映射。

您需要为String和MapStruct之间的映射编写一个自定义方法。它将使用该方法。

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

相关内容

  • 没有找到相关文章

最新更新