Consider a simple class:

```
class Employee {

String name;
int sal;

....//getters and setters
}

```

I can create a Comparator to sort on field name for example. 

```
class EmpSortByName implements Comparator<Employee>{

 @Override
 public int compare(Employee e1, Employee e2){
  return e1.getName().compareTo(e2.getName());
 }
}

```

However, looking at apache commons BeanComparator, sorting can be achieved in following way:

```
BeanComparator bc = new BeanComparator("name");
Collections.sort(employeeList, bc);

```

Thus, by using BeanComparator, I can achieve sorting with minimal code. What are the trade offs between using Comparators and BeanComparators: in terms of performance, usage scenarios (multiple fields sort, other factors)?

I also understand that to use BeanComparator, the beanutils jar has to be imported.