mapstruct 转list
时间: 2023-05-03 18:06:30 浏览: 1026
MapStruct是一款Java Bean映射框架,它能够自动生成Bean之间的映射代码,将一个Bean中的所有属性映射到另一个Bean中去,使得开发者不再需要手写冗长重复的映射代码。
在MapStruct中,转换List的映射方法与转换单个对象的映射方法类似。假设我们有两个类,一个是Person类,另一个是PersonDTO类,我们需要将一个List<Person>转换为List<PersonDTO>。
首先,我们需要在Mapper接口中定义两个方法:
```
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
PersonDTO toDto(Person person);
List<PersonDTO> toDtoList(List<Person> personList);
}
```
在这个Mapper接口中,我们定义了两个方法:
toDto方法:将一个Person对象转换成一个PersonDTO对象
toDtoList方法:将一个List<Person>集合转换成一个List<PersonDTO>集合
在这两个方法中,我们可以使用MapStruct提供的@Mapping注解来指定具体的映射规则。假设我们需要将Person的name属性映射到PersonDTO的firstName属性上面,那么可以这样写:
```
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
@Mapping(source = "name", target = "firstName")
PersonDTO toDto(Person person);
@Mapping(source = "name", target = "firstName")
List<PersonDTO> toDtoList(List<Person> personList);
}
```
最后,我们可以在我们的Java代码中使用这两个方法来进行对象的转换了:
```
List<Person> personList = new ArrayList<>();
// 假设我们这里有一个List<Person>的对象personList
List<PersonDTO> personDtoList = PersonMapper.INSTANCE.toDtoList(personList);
// 转换成List<PersonDTO>的对象personDtoList
```
总之,MapStruct是一款非常方便的Bean映射框架,它支持自动生成Bean之间的映射代码,非常适合在Java项目中使用。转换List的映射方法与转换单个对象的映射方法类似,只需要在Mapper接口中定义相应的方法即可。