У меня есть список, который содержит 2 объектов типа Department
s и Manager
s. Мне нужно отсортировать список по алфавиту по Department
s. Класс Department
реализует Comparable<Department>
и имеет метод compareTo
. Но я получаю сообщение об ошибке:Сортировка списка содержит 2 объекта
"Метод сортировки (List, компаратор) в типе Коллекции не применяется для аргументов (List, новый компаратор() {})"
public static List<?> getLst(String fileName)throws FileNotFoundException, IOException,ClassNotFoundException {
List<Object> lst = new LinkedList<>();
BufferedInputStream f;
try(ObjectInputStream i = new ObjectInputStream(f=new BufferedInputStream(new FileInputStream(fileName)))){
while (f.available()>0) {
lst.add(i.readObject());
}
Collections.sort(lst, new Comparator<Department>() {
@Override
public int compare(Department object1,Department object2) {
return object1.getDepName().compareTo(object2.getDepName());
}
});
}
return lst;
}
сообщение об ошибке не отображается correctly.It является «Метод сортировки (Список, компаратор super T>) в коллекциях типа не применяется для аргументов (список
Ну, вы не можете отсортировать список
Вы уничтожили защиту типа ... Не создавайте «Список» вместо этого, если вы хотите иметь несколько типов в «Листе», создайте родительский класс и оставите другие классы «продлевайте» его. Затем создайте свой список так: 'List <' name parent class'> '. Это также позволит вам определить сопоставимый метод в родительском классе, который может быть использован всеми дочерними системами. –
CraigR8806