码迷,mamicode.com
首页 > 其他好文 > 详细

BeanUtils.getProperty取得集合全部数据

时间:2015-11-12 11:44:59      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:


订单类

public class Order{
  
  private String sn;
/** 订单项 */
private List<OrderItem> orderItems = new ArrayList<OrderItem>();
  ...
  get set方法
  ...
}

 

订单项类

public class OrderItem{

/** 商品编号 */
private String sn;

/** 商品名称 */
private String name;
 
...
  get set方法
  ...
}

 

在利用BeanUtils.getProperty取得数据时

Order order = getOrder();

String[] properties = {"sn","orderItems[0].name""}

for (int i = 0; i < properties.length; i++) {

  System.out.println(BeanUtils.getProperty(Order,properties[i]););

}

 

 

取得集合orderItems的相关数据时,利用BeanUtils.getProperty(Object bean, String name) 方法,必须有集合的索引(orderItems[0]),如果想把orderItems全部数据输出,BeanUtils.getProperty做不到;

orderItems为空是,还会报空指针异常,我想到了下面这种比较笨的方法:

Order order = getOrder();

String[] properties = {"sn","orderItems"}

for (int i = 0; i < properties.length; i++) {

  System.out.println(BeanUtils.getProperty(Order,properties[i]););

  StringBuilder stringBuilder = new StringBuilder();

    if(properties[i].equals("orderItems")){ // 属性为订单项集合时

       StringBuilder stringBuilder = new StringBuilder();

       List<OrderItem> orderItemList = order.getOrderItems();

       for(OrderItem orderItem:orderItemList){

          stringBuilder = stringBuilder.append(orderItem.name() );

          stringBuilder = stringBuilder.append(" | ");
       }
     }

}

 

 

 

 

 

 



BeanUtils.getProperty取得集合全部数据

标签:

原文地址:http://www.cnblogs.com/runyu/p/4958230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!