實際不用多說只舉2個例子就行:
//例1static void fromArrayToCollection(Object[] a, Collection<?> c) { for (Object o : a) { c.add(o); // 編譯錯誤,錯誤原因也很簡單,<?>是無上下界的通配符泛型,所以編譯器根本無法確認類型 }}//例2static <T> void fromArrayToCollection(T[] a, Collection<T> c) { for (T o : a) { c.add(o); // 無問題 }}簡單說一下正確的例2:
<T>僅僅是聲名此方法中T作為泛型變量使用(這個變量名是隨意起的,只不過要前后對應上).
新聞熱點
疑難解答