2012-05-26 39 views
6

Tôi đang viết một phương thức lấy làm tham số duy nhất của nó một danh sách các đối tượng có thể so sánh và không trả về bất kỳ thứ gì. Tôi chắc chắn về cú pháp mà nó nên có:Cú pháp Java cho danh sách các đối tượng có thể so sánh

public static void methodName(List<Comparable<Object>> list) { 
    // Do some stuff 
} 

Tôi nghĩ rằng điều này là sai vì <Object> như một kiểu cho tương đương, trong đó sẽ có nghĩa là danh sách có thể mất một Integer và một Boolean như các đối tượng, nhưng Tôi không muốn điều đó. Tôi muốn danh sách chỉ có một loại, nhưng loại đó phải thực hiện giao diện Comparable. Làm thế nào để đạt được điều đó?

+0

Tại sao bạn không muốn sử dụng các loại 'Integer' và' Boolean' khi phương thức này hoạt động cho tất cả các đối tượng thực hiện 'Comparable'? –

+3

@Jake: Nó sẽ làm việc với một danh sách 'Integer' và với một danh sách' Boolean', nhưng không phải với một danh sách chứa cả 'Integer' và 'Boolean' cùng một lúc. –

+0

@Niklas Ah, hiểu rồi, tôi đã hiểu sai câu hỏi. Cảm ơn! –

Trả lời

10

Có thể làm cho nó phổ biến?

public static <E extends Comparable<E>> void methodName(List<E> list) ... 
+0

Liên kết đến hướng dẫn Java dành cho những người tò mò [https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html](https://docs.oracle.com/javase/tutorial/java /generics/boundedTypeParams.html) – Pegasaurus

Các vấn đề liên quan