有界类型参数是实现泛型算法的关键。考虑以下方法,该方法计算数组T[]中大于指定元素elem的元素数。
公共静态 <T> int countGreaterThan(T[] anArray, T elem) {
整数计数 = 0;
for (T e : anArray)
if (e > elem) // 编译器错误
++计数;
返回计数;
}
该方法的实现很简单,但无法编译,因为大于运算符 ( > ) 仅适用于原始类型,例如short、int、double、long、float、byte和char。您不能使用>运算符来比较对象。要解决此问题,请使用Comparable接口限定的类型参数:
公共接口 Comparable<T> {
公共 int compareTo(T o);
}
结果代码将是:
public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
整数计数 = 0;
for (T e : anArray)
if (e.compareTo(elem) > 0)
++计数;
返回计数;
}
以上就是关于“泛型方法和有界类型参数”介绍,大家如果想了解更多相关知识,可以关注一下极悦的Java教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助哦。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习