实体类集合转vo集合
时间: 2024-01-31 16:04:55 浏览: 88
实类集合转VO集合可以使用两种方法。其中,方法一是使用BeanUtils.copyProperties()方法进行属性赋值,前提是实体类和VO类的属性名一致。方法二是使用MapStruct框架,它可以处理属性名不一致的情况。
方法一:使用BeanUtils.copyProperties()方法
前提是实体类和VO类的属性名一致。可以使用以下代码将实体类集合转换为VO类集合:
```
List<Entity> entityList = ...; // 实体类集合
List<EntityVo> entityVoList = new ArrayList<>(); // VO类集合
for (Entity entity : entityList) {
EntityVo entityVo = new EntityVo();
BeanUtils.copyProperties(entity, entityVo);
entityVoList.add(entityVo);
}
```
方法二:使用MapStruct框架
如果实体类和VO类的属性名不一致,可以使用MapStruct框架进行属性映射。首先,在POM文件中添加MapStruct的依赖:
```
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.2.0.CR1</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.2.0.CR1</version>
</dependency>
```
然后,在实体类和VO类之间创建一个Mapper接口,定义属性映射方法:
```
@Mapper
public interface EntityMapper {
EntityMapper INSTANCE = Mappers.getMapper(EntityMapper.class);
EntityVo entityToVo(Entity entity);
}
```
最后,通过调用Mapper接口的方法,将实体类集合转换为VO类集合:
```
List<Entity> entityList = ...; // 实体类集合
List<EntityVo> entityVoList = entityList.stream()
.map(EntityMapper.INSTANCE::entityToVo)
.collect(Collectors.toList());
```
阅读全文