更新时间:2022-08-22 10:20:55 来源:动力节点 浏览379次
有界类型参数是实现泛型算法的关键。考虑以下方法,该方法计算数组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教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助哦。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习