Tôi có một giao diệnJava Generics: Cảnh báo cần có một dàn diễn viên không được kiểm soát để phù hợp với <InterfaceName>
interface x {
A getValue();
}
và thực hiện
class y implements x {
public B getValue() { return new B();}
}
B là một lớp con của A. này hoạt động vì hiệp biến ghi đè, tôi đoán vậy.
Nhưng nếu tôi viết lại giao diện như
interface x{
<T extends A> T getValue();
}
tôi nhận được một cảnh báo trong việc thực hiện mà
Cảnh báo cần có một dàn diễn viên không được kiểm soát để phù hợp với A.getValue()
Sự khác nhau giữa 2 phiên bản của giao diện là gì? Tôi đã nghĩ rằng họ là như nhau.
Thật thú vị, khi tôi thay đổi nó thành "' giao diện x {T getValue();} '", cảnh báo biến mất. –
Vâng, tôi nghĩ trong trường hợp này trình biên dịch có một cách để tìm ra T là gì từ khai báo lớp. Nhưng trong trường hợp khác không có cách nào để tìm ra T là gì. – Surya