我想這是一個令人困惑的標題,但我不知道還有什麼要調用 - 也許在某處回答,但我什麼也找不到。拿這個例子:Java泛型:無界通配符泛化不能通過第二級
List<Class<? extends Integer>> myList;
void foo() {
bar(myList);
}
void bar(List<Class<?>> a) { /* ... */ }
它不編譯(不適用的參數,它說)。如果我刪除的邊界,它工作正常:
List<Class<?>> myList;
void foo() {
bar(myList);
}
void bar(List<Class<?>> a) { /* ... */ }
Class<? extends Integer>
只比Class<?>
更具體。它如何停止工作?請注意,此問題僅在第二級泛型中出現。如果沒有列表,只需Class<? extends Integer>
和Class<?>
,它也可以。但是當仿製藥深入兩層或更多層時似乎停止了工作。任何原因/解決方法/等?
不錯,它的工作方式!我想最終會產生某種感覺...... – 2014-10-02 09:46:44