Java 有人能解释这些通用语法吗?

Java 有人能解释这些通用语法吗?,java,generics,Java,Generics,我浏览了Java库,在Arrays.Java中看到了以下代码: public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } 公共静态列表asList(T…a){ 返回新的ArrayList(a); } 我只是想知道,这不应该是: return new ArrayList<T>(a); 返回新的ArrayList(a); 我猜它正在ArrayList.

我浏览了Java库,在Arrays.Java中看到了以下代码:

public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}
公共静态列表asList(T…a){
返回新的ArrayList(a);
}
我只是想知道,这不应该是:

return new ArrayList<T>(a);
返回新的ArrayList(a);
我猜它正在ArrayList.java中调用此方法:

public ArrayList(Collection<? extends E> c) {
    elementData = c.toArray();
    if ((size = elementData.length) != 0) {
        // c.toArray might (incorrectly) not return Object[] (see 6260652)
        if (elementData.getClass() != Object[].class)
            elementData = Arrays.copyOf(elementData, size, Object[].class);
        } else {
            // replace with empty array.
            this.elementData = EMPTY_ELEMENTDATA;
        }
    }
}

public ArrayList(Collection自java 7以来,您可以使用return
new ArrayList(a);
而不是return new
ArrayList(a);
来自动添加所需的类型。使用它告诉编译器它有一个类型,并且它与正确的类型匹配(泛型只是元信息)

嗨!请使用(你有徽章!),环顾四周,通读,尤其是每个问题问一个问题。或者问
是什么,或者问
是什么。回复:
:这可能会帮助您
功能已经存在7年了。如果它可以编译并且在JDK中,则可能是正确的。Ora中对此进行了解释cle Java泛型教程(特别是:和)。我建议您阅读整个教程,因为它将向您介绍这些和其他概念。