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