Rozważmy prostą klasę:Komparator vs Apache BeanComparator
class Employee {
String name;
int sal;
....//getters and setters
}
mogę utworzyć komparatora sortowania na nazwę pola na przykład.
class EmpSortByName implements Comparator<Employee>{
@Override
public int compare(Employee e1, Employee e2){
return e1.getName().compareTo(e2.getName());
}
}
Jednak patrząc na Apache Commons BeanComparator, sortowania można osiągnąć w następujący sposób:
BeanComparator bc = new BeanComparator("name");
Collections.sort(employeeList, bc);
Zatem stosując BeanComparator, mogę osiągnąć sortowania z minimalnym kodu. Jakie są kompromisy między używaniem Komparatorów i BeanComparators: pod względem wydajności, scenariuszy użycia (sortowanie wielu pól, inne czynniki)?
Rozumiem również, że aby użyć BeanComparator, słoik beanutils musi zostać zaimportowany.
jest minimalny „pozorny” kod. nie zapomnij, że nie wiesz, co robi BeanComparator i może być mniej efektywny niż pierwszy sposób. –