public class HelloWorld{
public static void main(String[] args) {
List<? extends Number> callback = new ArrayList<Long>();
new Container<>().test(callback);
}
public static class Container<T extends Number> {
public void test(List<T> some) {
}
}
這個代碼產生
HelloWorld.java:7: error: incompatible types: List<CAP#1> cannot be converted to List<Number>
new Container<>().test(callback);
^
where CAP#1 is a fresh type-variable:
CAP#1 extends Number from capture of ? extends Number
你能詳細這段代碼不正確解釋。
我希望新的集裝箱將與同類型的回調
有點毫無意義,因爲'String'是'final'類。 – Bohemian
@Bohemian想象它是數字 – gstackoverflow
在這種情況下,使用'Number',因爲在泛型中使用'Number'有正當的理由,但'String'不是很多。 – Makoto