我有这样的要求,其中对于所有的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;
}
}