我编写了一个对自定义对象 Collection.sort 的 ArrayList 进行排序的函数。
public List<Student> getStudents(int std) {
List<Student> students = studentDAO.getStudents(std);
......
sortStudents(students);
.....
return students;
}
private void sortStudents(students) {
Collection.sort(students, new Comparator<Student>(){
public int compare(Student s1, Student s2) {
return s1.getDOB().compareTo(s2.getDOB());
}
});
}
上面的代码干净吗? 可以编写这样的更改器(mutator)还是应该使用一个新对象并返回它?
最佳答案
这取决于 studentDAO.getStudents()
方法的约定 - 它是否保证始终返回新的结果列表(即只有调用者可以引用的对象)?如果是这样,那么您可以安全地将其分类到位。如果没有,您应该复印一份。
另一个问题是——它总是能保证这一点吗?可能出错的多种方式之一是如果您添加一些缓存 - 这很容易破坏这种保证。
关于java - java中mutator方法的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33515838/