java对象复制到另一个对象中_spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)...

spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)

它的出现原因: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。

我有一个Category分类表对象,和一个ProductInfo商品表对象

我需要的数据格式是(以分类作为基数,分类下面有多条帖子):

data:[

{

"cid":1,

"name":"灌水",

"theads":[

{

"id":1,

"cid":1,

"name":"有喜欢这歌的吗?"

"time":"2018-12-12 18:25"

},

{

"id":1,

"cid":1,

"name":"有喜欢这歌的吗?"

"time":"2018-12-12 18:25"

}

]

} ,{

"cid":2,

"name":"文学",

"theads":[

{

"id":18,

"cid":2,

"name":"徐志摩的诗"

"time":"2018-12-12 18:25"

},

{

"id":21,

"cid":2,

"name":"鲁迅的散文"

"time":"2018-12-12 18:25"

}

]

}

]

代码如下

ResultVO resultVO = new ResultVO();

//ProductVO productVO = new ProductVO();

//List productInfoVOList = new ArrayList();

//productVO.setProductInfoVOList(productInfoVOList);

//resultVO.setData(productVO);

//查询商品

List productInfoList = product.findAll();

//查询商品类目(一次性读完)

//传统方法

// List categoryTypeList = new ArrayList<>();

//for (ProductInfo productInfo: productInfoList)

// {

// categoryTypeList.add(productInfo.getCategoryType());

//}

//java8-lambda方法

List categoryTypeList = productInfoList.stream().map(e -> e.getCategoryType()).collect(Collectors.toList());

List CategoryList = category.findByCategoryTypeIn(categoryTypeList);

//拼合数据

for (ProductCategory category: CategoryList)

{

//productCategory

ProductVO productVO = new ProductVO();

productVO.setCategoryType(category.getCategoryType());

productVO.setCategoryName(category.getCategoryName());

//productInfo

List productInfoVOList = new ArrayList<>();

for (ProductInfo productInfo : productInfoList)

{

if(productInfo.getCategoryType().equals(category.getCategoryType()))

{

//老方法:

ProductInfoVO productInfoVO = new ProductInfoVO();

productInfoVO.setProductId(productInfo.getProductId());

productInfoVO.setProductName(productInfo.getProductName());

productInfoVOList.add(productInfoVO);

//新方法:将productInfo属性复制到productInfoVO1中

//beanutils.copyproperties

ProductInfoVO productInfoVO1 = new ProductInfoVO();

BeanUtils.copyProperties(productInfo, productInfoVO1);

productInfoVOList.add(productInfoVO1);

}

}

productVO.setProductInfoVOList(productInfoVOList);

}

return resultVO;

//return "list";

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值