1

我有一个名为 Employee 的 POJO 类,带有 empName 和 Salary。我有一个 Employee 集合作为包含员工详细信息的对象。现在我想将特定字段的值重置为某个常见值。在这种情况下,我想将列表中所有员工项目的薪水分配给“0”。

List<Employee> empList;

public class Employee{
    private String empName = "";
    private int empSalary = "";
}

而不是使用 For/Foreach 遍历员工列表并为列表中的所有项目分配所需的值。

是否有任何简单或有效的方法可以使用任何 CollectionUtils(Apache commons 或任何其他)来实现相同的目标。

4

3 回答 3

5

从 Java 7 开始,对于集合的“批量”更新没有简洁的方法。希望这会在 Java 8 中变得更好,但现在我建议查看像番石榴这样的库:http ://code.google.com/p/guava-libraries/wiki/FunctionalExplained

于 2013-04-23T07:35:23.797 回答
2

我相信您可以使用 Commons Collections 做到这一点(这是您建议使用的):

CollectionUtils.forAllDo(empList, new Closure() {
    public void execute(Object empObject) {
        Employee emp = (Employee)empObject;
        emp.setEmpSalary(salaryValueToSet);
    }
});
于 2013-04-23T07:33:57.857 回答
2

Salary 作为一个类变量将自动初始化为其默认值 0。只要创建对象,无论它是否在某个集合中,都会发生这种情况。

如果你想要一些其他的公共值,你可以在构造函数中适当地初始化它。

如果您想在对象被创建并添加到集合之后修改其属性,那么除了迭代集合并显式设置值之外没有其他方法。

于 2013-04-23T07:30:48.903 回答