Java函數泛型允許設定上限和下限。上限(extends)指定函數接受或傳回的資料類型必須是指定類型的子類型,例如
Java 函數泛型的上限和下限
函數泛型是一種強大的機制,允許我們在編譯時指定函數可以處理的資料型態。 Java 中的泛型可以宣告上限和下限,以限制函數接受或傳回的資料類型。
上限(Upper Bound)
上限指定函數可以接受或傳回的資料類型必須是某個指定類型的子類型。它使用 extends 關鍵字指定。例如:
public <T extends Number> void printNumber(T number) { System.out.println(number); }
此函數只能接受 Number 或其子類別的類型(例如,Integer、Double、Float)。
下限(Lower Bound)
下限指定函數可以接受或傳回的資料類型必須是某個指定類型的超類型。它使用 super 關鍵字指定。例如:
public <T super Number> void sumNumbers(List<T> numbers) { double sum = 0; for (T number : numbers) { sum += number.doubleValue(); } }
此函數可以接受 Number 或其超類型的列表,例如 List
實戰案例
假設我們有一個比較兩個數字的函數:
public static <T extends Comparable<T>> int compare(T obj1, T obj2) { return obj1.compareTo(obj2); }
我們可以使用此函數比較任何實作了Comparable 介面的類型,例如:
int result = compare(10, 20); // result 为 -1
使用方法
使用泛型的上限和下限時,請記住以下幾點:
以上是Java 函數泛型的上限和下限是什麼?如何使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!