浅谈泛型之泛型方法

实际不用多说只举2个例子就行:

//例1
static void fromArrayToCollection(Object[] a, Collection<?> c) {
    for (Object o : a) { 
        c.add(o); // 编译错误,错误原因也很简单,<?>是无上下界的通配符泛型,所以编译器根本无法确认类型
    }
}
//例2
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
    for (T o : a) {
        c.add(o); // 无问题
    }
}

简单说一下正确的例2:

<T>仅仅是声名此方法中T作为泛型变量使用(这个变量名是随意起的,只不过要前后对应上).

你可能感兴趣的:(泛型方法)