更新時間:2022-08-11 11:24:38 來源:動力節點 瀏覽2108次
在本教程中,動力節點小編將通過示例了解 Java 泛型、如何創建泛型類和方法及其優勢。
Java 泛型允許我們創建可用于不同類型的數據(對象)的單個類、接口和方法。
這有助于我們重用我們的代碼。
我們可以創建一個可用于任何類型數據的類。這樣的類稱為泛型類。
下面是我們如何在 Java 中創建泛型類:
示例:創建泛型類
class Main {
public static void main(String[] args) {
// initialize generic class
// with Integer data
GenericsClass<Integer> intObj = new GenericsClass<>(5);
System.out.println("Generic Class returns: " + intObj.getData());
// initialize generic class
// with String data
GenericsClass<String> stringObj = new GenericsClass<>("Java Programming");
System.out.println("Generic Class returns: " + stringObj.getData());
}
}
// create a generics class
class GenericsClass<T> {
// variable of T type
private T data;
public GenericsClass(T data) {
this.data = data;
}
// method that return T type variable
public T getData() {
return this.data;
}
}
輸出
通用類返回:5
泛型類返回:Java 編程
在上面的例子中,我們創建了一個泛型類,名為泛型類. 此類可用于處理任何類型的數據。
class GenericsClass<T> {...}
這里,尖括號內使用的<>表示類型參數。在Main類中,我們創建了兩個對象泛型類對象- 這里,類型參數噸替換為Integer。現在泛型類適用于整數數據。
字符串對象- 這里,類型參數噸替換為String。現在泛型類適用于字符串數據。
與泛型類類似,我們也可以創建一個可用于任何類型數據的方法。這樣的類稱為泛型方法。
下面是我們如何在 Java 中創建泛型類:
示例:創建泛型方法
class Main {
public static void main(String[] args) {
// initialize the class with Integer data
DemoClass demo = new DemoClass();
// generics method working with String
demo.<String>genericsMethod("Java Programming");
// generics method working with integer
demo.<Integer>genericsMethod(25);
}
}
class DemoClass {
// creae a generics method
public <T> void genericsMethod(T data) {
System.out.println("Generics Method:");
System.out.println("Data Passed: " + data);
}
}
輸出
泛型方法:
通過的數據:Java 編程
泛型方法:
數據通過:25
在上面的示例中,我們創建了一個名為的泛型方法
public <T> void genericMethod(T data) {...}
在這里,類型參數<T>插入在修飾符之后public和返回類型之前void。
我們可以通過將實際類型放在方法名稱前的方括號內來調用泛型<String>方法<Integer>。
demo.<String>genericMethod("Java Programming");
demo.<Integer>genericMethod(25);
1. 代碼可重用性
借助 Java 中的泛型,我們可以編寫適用于不同類型數據的代碼。例如,
public <T> void genericsMethod(T data) {...}
在這里,我們創建了一個泛型方法。同樣的方法可用于對整數數據、字符串數據等執行操作。
2. 編譯時類型檢查
泛型的類型參數提供有關泛型代碼中使用Java的數據類型信息。例如,
// using Generics
GenericsClass<Integer> list = new GenericsClass<>();
在這里,我們知道泛型類僅使用Integer數據。
現在,如果我們嘗試將 Integer 以外的數據傳遞給此類,程序將在編譯時產生錯誤。
3. 與集合一起使用
集合框架使用 Java 中的泛型概念。例如,
// creating a string type ArrayList
ArrayList<String> list1 = new ArrayList<>();
// creating a integer type ArrayList
ArrayList<Integer> list2 = new ArrayList<>();
在上面的示例中,我們使用了相同的ArrayList 類來處理不同類型的數據。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習