通用返回对象

sau*_*anu 7 java collections

最近,当我遇到这段代码时,我正在阅读oracle集合教程中的以下代码.

public static <E> Set<E> removeDups(Collection<E> c) {
             return new LinkedHashSet<E>(c);
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么返回值是什么

            <E> Set<E> and not just Set<E> ?
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 7

事实上,返回类型很简单Set<E>.

另一个<E>是指示这是一个通用方法,并声明这E是泛型的参数.如果没有这个<E>,编译器会认为它E是一个现有的类,并会尝试找到它(如果没有命名的类E在范围内,则会产生错误).