Comparable и Comparator
Есть класс со сгенерированным кодом в нем поля:
public class Student implements Comparable<Student> {
String name;
Character sex;
int age;
int course;
double avgGrade;
Имплементировал Comparable
для сортировки по возрасту и хочу написать Comparator
для сортировки допустим по полу.
class StudentSexComparator implements Comparator<Student>{
@Override
public int compare(Student st1, Student st2) {
return st1.sex.compareTo(st2.sex);
}
Если использовать примитив (char) то сравнивать вообще не дает. Это значит что поля по которым сравниваем должен быть обязательно Оберткой?
Можете подсказать почему в StudentSexComparator метод compare не дает возможности пользоваться геттерами и так ли критично если в этом случает обращаться к полям напрямую?