您可以使用上界通配符来放宽对变量的限制。例如,假设您想编写一个可以在 List<Integer>、List<Double> 和 以及 List<Number> 上工作的方法;您可以通过使用上界通配符来实现这一点。
要声明上界通配符,请使用通配符字符('?'),后跟 extends 关键字,后跟其 上界。请注意,在此上下文中,extends 通常用于泛指 "extends"(用于类)或 "implements"(用于接口)。
要编写适用于 Number 类型及其子类型(例如 Integer、Double 和 Float)列表的方法,您可以指定 List<? extends Number>。术语 List<Number> 比 List<? extends Number> 更加严格,因为前者仅匹配类型为 Number 的列表,而后者匹配类型为 Number 或任何其子类的列表。
考虑以下 process 方法:
上界通配符 <? extends Foo>,其中 Foo 是任意类型,匹配 Foo 和 Foo 的任何子类型。 process 方法可以将列表元素作为类型 Foo 访问:
在 foreach 语句中,elem 变量遍历列表中的每个元素。现在可以在 elem 上使用 Foo 类中定义的任何方法。
sumOfList 方法返回列表中数字的总和:
以下代码使用 Integer 对象的列表,打印出 sum = 6.0:
一组 Double 值可以使用相同的 sumOfList 方法。以下代码打印出 sum = 7.0:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/4458.html