Когда я пытаюсь создать анонимный внутренний объект с использованием сопоставимого интерфейса, я получаю ошибку компиляции.
//Code trying to create treeset using comparable
// compilation error
TreeSet<String> treeSet5 = new TreeSet<String>(new Comparable<String>() {
@Override
public int compareTo(String o) {
// TODO Auto-generated method stub
return 0;
}
});
// CE:The constructor TreeSet<String>(new Comparable<String>(){}) is undefined
Я знаю, что для пользовательской сортировки нам нужно использовать компаратор, но мне любопытно, почему мы не можем создать сопоставимый анонимныйкласс.
//Custom sorting: default sorting as String implements comparable
// below code is fine as its working as expected.
TreeSet<String> treeSet2 = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});