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