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中文网其他相关文章!