Java 中的泛型<E>
Java 5 中添加了泛型
以改进抽象,并提供一种使用方法、接口或具有不同对象或数据类型的单个类的方法。
有一个与 Generics
相关的通用命名约定,例如 T
代表 Type,V
用于 Value。我们看一下 E
,这是 Generics
中使用的另一个类型参数名称,在本文中通常代表 Element。
在 Java 中使用 Generics
<E>
创建一个新列表
理解 Generics
的最好方法是使用集合,因为没有 Generics
,像列表这样的集合过去需要大量的代码来编写。尽管如此,在引入 Generics
之后,我们仍然可以用很少的代码创建 List
或任何其他集合。
通用名称 <E>
代表 Element,通常用于 Java 集合框架中。在下面的示例中,我们创建了一个名为 newListWithElements()
的静态方法,该方法接受一个泛型类型 E
参数和变量参数运算符 ...
,称为 listElements
。
newListWithElements()
方法返回一个 <E>
类型的 List
,它是一个泛型类型参数。我们还在返回类型之前和 static
或任何使用泛型方法的访问修饰符之后使用类型参数。
在函数内部,我们创建了一个 int
变量 listElementsSize
并使用 listElements
参数的长度对其进行初始化。如果它是 null
,我们将其初始化为零。
然后我们创建一个 ArrayList
构造函数并传递 listElementsSize
,它是 List
的大小,它返回一个 <E>
类型的 List
。
现在我们收集所有的 listElements
元素并使用 Collections.addAll()
创建一个新列表,将所有元素添加到新列表 listOfElements
中。我们有一个从该方法返回的新列表。
在 main()
函数中,我们使用 String
、Integer
和 Boolean
等类型调用 newListWithElement()
三次。Generics
可以使用单个方法创建多个对象类型的列表。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class JavaEGenerics {
public static void main(String[] args) {
List<String> newStringList = newListWithElements("element1", "element2", "element3");
List<Integer> newIntList = newListWithElements(11, 12, 13);
List<Boolean> newBooleanList = newListWithElements(true, false);
System.out.println(newStringList);
System.out.println(newIntList);
System.out.println(newBooleanList);
}
static <E> List<E> newListWithElements(E... listElements) {
int listElementsSize = 0;
if (listElements != null)
listElementsSize = listElements.length;
List<E> listOfElements = new ArrayList<>(listElementsSize);
if (listElements != null)
Collections.addAll(listOfElements, listElements);
return listOfElements;
}
}
输出:
[element1, element2, element3]
[11, 12, 13]
[true, false]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn