Tôi gặp vấn đề về litte và đang tự hỏi cách giải quyết nó. Tôi có một lớp generic Tuple<A,B>
và bây giờ tôi muốn sắp xếp các bộ theo A và B. Nó sẽ giống như thế này:Đảm bảo rằng các đối tượng thực hiện Comparable
Unsorted:
(1,5) (2,8) (6,8) (1,4) (2,4)
Sắp xếp:
(1,4) (1,5) (2,4) (2,8) (6,8)
Đối lý do đó tôi nghĩ đến việc thực hiện một phương pháp so sánh chung (public int compareTo(Tuple<A, B> other)
) trong lớp Tuple. Vấn đề duy nhất là tất cả các đối tượng mà bạn có thể tham số hóa lớp (ví dụ A = Integer, B = String) phải thực hiện phương thức compareTo để toàn bộ việc này hoạt động.
Có cách nào để đảm bảo rằng tất cả các đối tượng mà Tuple có thể giữ thực hiện giao diện Có thể so sánh không?
Hoặc có bất kỳ đề xuất nào khác về cách giải quyết vấn đề này không?
Cảm ơn
Tôi thích 'A mở rộng so sánh super A>', nhưng +1 để triển khai So sánh trên chính Tuple. Tôi nên nhớ điều đó. –
Bạn không nên sử dụng 'A extends Comparable ' ... điều này sẽ không hoạt động với các lớp cũ hơn mà thực thi nguyên 'Comparable', trong số những thứ khác. chữ ký của mmyers với chữ 'A extends Comparable super A> 'là đúng. – ColinD
Ah, cảm ơn. Tôi đã chỉnh sửa câu trả lời của tôi để không đánh lừa, và đã upvoted mmyers 'phiên bản. – Lyle