首页 养生问答 疾病百科 养生资讯 女性养生 男性养生
您的当前位置:首页正文

spring:beanutils.copyproperties将一个对象的数据塞入到另一个。。。

2021-06-03 来源:华佗健康网
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\";

  

因篇幅问题不能全部显示,请点此查看更多更全内容