mapstruct指定list转换使用对象转换
时间: 2023-08-13 16:04:59 浏览: 117
可以使用 MapStruct 提供的 `@Mapping` 注解和 `List` 类型的映射方法来指定 list 转换使用对象转换。
举个例子,假设我们有两个类 `Source` 和 `Target`,它们的属性名不完全相同:
```java
public class Source {
private String name;
private int age;
// getter/setter
}
public class Target {
private String fullName;
private int yearsOld;
// getter/setter
}
```
现在我们希望将一个 `List<Source>` 转换成一个 `List<Target>`,可以定义一个映射方法:
```java
@Mapper
public interface SourceTargetMapper {
@Mapping(source = "name", target = "fullName")
@Mapping(source = "age", target = "yearsOld")
Target sourceToTarget(Source source);
List<Target> sourceListToTargetList(List<Source> sourceList);
}
```
在上面的代码中,我们使用 `@Mapping` 注解来指定将 `Source` 的 `name` 属性映射到 `Target` 的 `fullName` 属性,将 `Source` 的 `age` 属性映射到 `Target` 的 `yearsOld` 属性。然后我们定义了一个 `sourceListToTargetList` 方法,该方法将会自动使用我们定义的 `sourceToTarget` 方法来将 `List<Source>` 转换成 `List<Target>`。
阅读全文