个。。。
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 List //查询商品类⽬(⼀次性读完) //传统⽅法 // List // categoryTypeList.add(productInfo.getCategoryType()); //} //java8-lambda⽅法 List //拼合数据 for (ProductCategory category: CategoryList) { //productCategory ProductVO productVO = new ProductVO(); productVO.setCategoryType(category.getCategoryType()); productVO.setCategoryName(category.getCategoryName()); //productInfo List 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\"; 因篇幅问题不能全部显示,请点此查看更多更全内容