tôi đã có mã này:phương pháp java trở về một thể hiện của lớp <T kéo dài somethng>
public <T extends Scrapper> Class<T> getScrapper() {
return MyScrapper.class;
}
MyScrapper
là một lớp thực hiện giao diện Scrapper
. Tại sao cái này không hoạt động? Tôi nhận được lỗi sau trong JDK7:
error: incompatible types
required: Class<T>
found: Class<MyScrapper>
where T is a type-variable:
T extends Scrapper declared in method <T>getScrapper()
P.S. Tôi đã thực sự cố gắng tìm kiếm toàn bộ 30-40 phút.
Cập nhật: nếu tôi khai báo phương thức là public Class<? extends Scrapper> getScrapper() {
hoạt động. nhưng tôi vẫn không hiểu tại sao bản khai gốc lại không biên dịch. có gì sai với nó?
Điều gì sẽ xảy ra nếu bạn chỉ đặt thành –
ControlAltDel
cách bạn đề xuất không nên hoạt động. nhưng tôi đã thử một thứ khác và nó hoạt động. Tôi đã cập nhật câu hỏi –
Tôi đang cảm thấy mệt mỏi. Tôi có nghĩa là thay đổi chỉ để Scrapper (unparameterized) nhưng bạn đã nhận nó để làm việc bằng cách sử dụng một đối số lớp và nếu phù hợp với mục đích của bạn ngay trên – ControlAltDel