私はリストがあります。リストにはタイプDepartment
とManager
の2つのオブジェクトが含まれています。 アルファベット順にリストをソートする必要があります。Department
s。 Department
クラスはComparable<Department>
を実装し、方法はcompareTo
です。リストのコレクションの種類には2つのオブジェクトが含まれています
:しかし、私はエラーメッセージが表示されます。「 コレクションは、引数には適用されませんタイプのメソッドソート(リスト、コンパレータ)(一覧、新しい コンパレータ(){})」
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は表示されませんでした –
まあ、リスト
あなたは型の安全性を破壊しました.... 'List'内に複数の型を持たなければならない場合は' List 'を作成せず、親クラスを作成し、他のクラスを' extend'してください。次に 'List <' name of parent class'> 'のようにリストを作成します。これにより、すべての子どもが利用できる、親クラス内の比較可能なメソッドを定義することもできます –
CraigR8806