2011-11-06 26 views
7

Tại sao bản dịch này lại biên dịch:Tại sao ràng buộc chung "E thực hiện tôi" dẫn đến lỗi trình biên dịch?

class MaxMin<E extends Comparable<E>> 
{ 
    E max=null; 
    E min=null; 
} 

... nhưng điều này không?

class MaxMin<E implements Comparable<E>> 
{ 
    E max=null; 
    E min=null; 
} 
+0

gửi các lỗi biên dịch là tốt. – Kashyap

+0

có thể so sánh không phải là một giao diện không? – Joe

+0

@IAbstractDownvoteFactory, [Comparable] (http://download.oracle.com/javase/7/docs/api/java/lang/Comparable.html) là một giao diện. –

Trả lời

15

Giới hạn loại chung chỉ xác định extendssuper.

Trích dẫn các Java Generics Tutorial (tôi nhấn mạnh)

Để khai báo một tham số kiểu bị chặn, liệt kê tên các tham số kiểu của, tiếp theo là mở rộng từ khóa, tiếp theo là giới hạn trên của nó, mà trong ví dụ này là Số. Lưu ý rằng, trong bối cảnh này, mở rộng được sử dụng trong một cảm giác chung để có nghĩa là một trong hai "kéo dài" (như trong lớp) hoặc "dụng cụ" (như trong giao diện)

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