有人可以解释这些通用语法吗? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人可以解释这些通用语法吗? [重复]相关的知识,希望对你有一定的参考价值。

我正在查看Java库,我在Arrays.java中看到了这段代码:

public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}

而我只是想知道它不是假设:

return new ArrayList<T>(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;
        }
    }
}

问号在Collection中意味着什么?

答案

从java 7开始,您可以使用return new ArrayList<>(a);而不是返回新的ArrayList<T>(a);,它将自动添加所需的类型。使用它作为<>告诉编译器它有一个类型,它匹配正确的一个(泛型只是元信息)

以上是关于有人可以解释这些通用语法吗? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

有人可以解释以下 R 代码片段吗? [关闭]

有人可以解释一下 C 中 signal() 语法的含义吗? [复制]

如何创建片段以重复变量编号中的代码行

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

有人可以向我解释 asp.net 路由语法吗?

有人可以解释一下这个示例 C# 代码背后的逻辑吗?多年来我没有得到答案 10 [重复]