Сделать compareBySal
static
, чтобы он соответствовал требуемому функциональному интерфейсу:
static int compareBySal(Employee e1,Employee e2)
{
return (int) (e1.getSal()-e2.getSal());
}
или
static int compareBySal(Employee e1,Employee e2)
{
return Float.compare(e1.getSal(),e2.getSal());
}
В исходной реализации, где compareBySal
- этоДля метода экземпляра EmpDemo::compareBySal
требуется 3 аргумента - экземпляр EmpDemo
и два экземпляра Employee
.Это не соответствует интерфейсу Comparator<Employee>
, ожидаемому Collections.sort()
.
Другая альтернатива (если вы не измените compareBySal
на static
метод) - это использовать ссылку на методконкретный экземпляр:
Collections.sort(emp, new EmpDemo()::compareBySal);