使用通配符我宣佈下面給出其參數是Number
型的方法:在方法參數
public static void organizeData(java.util.List<? extends Number> c) {
//operation on the list
}
我能夠通過任何非參數列表作爲參數。那麼使用通配符<? extends Number>
有什麼意義?
List newList = new LinkedList<>();
ClassName.organizeData(newList);
爲什麼我從c
得到Object
類型的元素?而不是類型Number
?有沒有辦法只允許一個類型的子類型作爲參數傳遞,而不是允許非參數化的參數呢?
你不能阻止。用戶總是可以首先投射到原始類型,然後投射到任何需要的地方。泛型有其侷限性,原始類型總是打破它們。 – 2014-10-08 13:35:13