Đối với bất kỳ ai có câu hỏi như thế này, bạn có thể cần "Collections.sort", không phải "Collection.sort", sai lầm tôi đã thực hiện bên dưới.Tại sao tôi không thể gọi Collections.sort() trên ArrayList <T> của mình?
tôi đã xác định một lớp định nghĩa là
public class Store implements Serializable, Comparable<Store> { ... }
Tôi có một lĩnh vực trong lớp khác định nghĩa là:
ArrayList<Store> fStores = new ArrayList<Store>();
Tôi muốn sắp xếp bộ sưu tập này, vì vậy trong một phương pháp mà tôi gọi:
Collection.sort(fStores);
Tuy nhiên, tôi gặp lỗi biên dịch sau:
The method sort(ArrayList<Store>) is undefined for the type Collection
ArrayList thực hiện List, và từ các tài liệu:
public static <T extends Comparable<? super T>> void sort(List<T> list)
Vì vậy, tại sao tôi nhận được thông báo lỗi? Tôi cũng đã cố gắng tạo ra hậu duệ của riêng tôi của Comparator và chuyển nó đến phương thức sắp xếp mà không có may mắn.
Tôi đoán có điều gì đó về "< T mở rộng So sánh <? Super T>>" Tôi không hiểu ...?
Không phải là nó 'Collections.sort()', không phải 'Collection.sort()'? –
Bộ sưu tập là một lỗi đánh máy? Tôi nghĩ bạn có nghĩa là 'Bộ sưu tập' –