如何用beanutils

时间:2016-12-02 15:53:02

标签: java arraylist apache-commons-beanutils

我有课

class cust{
private String name;
private int id;

//Getter and setters
//equals
//hashcode
//toString
}

在我的主要班级

List<Customer> custList =  new ArrayList<Customer>;

custList中添加了唯一的客户。

如果我将新客户添加到列表中,我需要使用beanutils替换旧客户的ID和ID。

这是我的Beanutils代码

  BeanUtils.setProperty("customer", "custList[0]", customer); 

PS:我有覆盖等于&amp;哈希码方法。

2 个答案:

答案 0 :(得分:0)

为什么要使用BeanUtils?

为什么不在列表中找到该元素并覆盖它?

public void addOrReplace(List<Customer> customers, Customer customer) {
    int index = -1;

    for(int k = 0; index != -1 && k < customers.size(); k++) {
        if(customers.get(k).getId() == customer.getId()) {
            index = k;
        }
    }

    if(index == -1) {
        customers.add(customer);
    } else {
        customers.set(index, customer);
    }
}

答案 1 :(得分:0)

我同意BretC答案的要点,但我的实施更简洁,原始列表保持不变:

public List<Customer> addOrReplace(List<Customer> customers, Customer customer) {
    return customers.stream()
             .map(c -> c.getId() == customer.getId() ? customer : c)
             .collect(Collectors.toList());
}