Steam流将一个List<Bean>转化为另一List<Bean>
将一个List 转化为另一个List
可以将其中有相关属性的值赋值给另一个Bean;
一、第一个实体类
// An highlighted block
mport java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @Description: 用户练习表
* @Author: LG
* @Date: 2019-09-28
* @Version: V1.0
*/
@Data
@TableName("tb_user_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="tb_user_info对象", description="用户练习表")
public class UserInfo {
/**id*/
@TableId(type = IdType.UUID)
@ApiModelProperty(value = "id")
private String id;
/**姓名*/
@Excel(name = "姓名", width = 15)
@ApiModelProperty(value = "姓名")
private String name;
/**年龄*/
@Excel(name = "年龄", width = 15)
@ApiModelProperty(value = "年龄")
private Integer age;
/**邮箱*/
@Excel(name = "邮箱", width = 15)
@ApiModelProperty(value = "邮箱")
private String email;
/**身份证*/
@Excel(name = "身份证", width = 15)
@ApiModelProperty(value = "身份证")
private String idCard;
/**手机号*/
@Excel(name = "手机号", width = 15)
@ApiModelProperty(value = "手机号")
private String phone;
/**创建时间*/
// @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**更新时间*/
// @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**密码*/
@Excel(name = "密码", width = 15)
@ApiModelProperty(value = "密码")
private String password;
/**状态*/
// @Excel(name = "状态", width = 15)
@ApiModelProperty(value = "状态")
private Integer status;
/**生日*/
// @Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "生日")
private Date birthday;
/**地区*/
@Excel(name = "地区", width = 15)
@ApiModelProperty(value = "地区")
private String area;
/**性别*/
// @Excel(name = "性别", width = 15)
@ApiModelProperty(value = "性别")
private Integer sex;
private String sysOrgCode;
}
二、第二个Bean
// An highlighted block
package org.jeecg.modules.study.entity;
import lombok.Data;
/**
* Date:2019/10/27
*可能存在继承关系或者有相同属性的对象
* @author:LG
*/
@Data
public class UserInfoExp extends UserInfo {
private String statusName;
};
三、将其中的一个List 转化为另一个List,可以利用java8的新特性实现优雅的转化,无需再利用for循环
// An highlighted block
List<UserInfo> pageList = userInfoService.list(queryWrapper);
// List<UserInfoExp> list = new ArrayList<>();
List<UserInfoExp> list = pageList.stream().map(e -> JSONUtil.
toBean(JSONUtil.toJsonStr(e), UserInfoExp.class)).
collect(Collectors.toList());