可以使用SpEL表达式,在映射表达式中对集合中的值进行修改。
例如,假设我们有一个Person类和一个User类,User类中有一个List
可以使用以下映射表达式来实现:
@Mapper(componentModel = "spring") public interface PersonMapper { @Mapping(target = "hobbies", expression = "T(java.util.Collections).unmodifiableList(source.getHobbies().stream().map(s -> s.toUpperCase()).collect(java.util.stream.Collectors.toList()))") User personToUser(Person source); }
在上面的映射表达式中,T(java.util.Collections)表示使用java.util.Collections类中的静态方法,unmodifiableList用于创建一个不可修改的列表,stream方法将集合转换为流,map方法将每个元素转换为大写形式,collect方法将结果转换回List类型。