【问题标题】:Why do objects need to implement Iterable<T> to be the target of for-each loops, if it requires no implementation? [closed]为什么对象需要实现 Iterable<T> 作为 for-each 循环的目标,如果它不需要实现? [关闭]
【发布时间】:2021-07-09 18:47:00
【问题描述】:

如果对象不需要实现任何方法,为什么需要实现 Iterable 作为 for-each 循环的目标? 每当在 for-each 循环中使用对象时,这不能在编译时自动完成吗?

【问题讨论】:

  • 如果它不需要实现任何方法?...你能详细说明一下吗?
  • 你认为哪些方法不需要实现?对于一个可迭代的对象,它需要提供一个迭代器。您是否正在查看已经提供实现的类?
  • 投票结束,因为这个问题是基于一个误解,认为Iterable没有任何未实现的方法,而实际上方法iterator()是未实现的。

标签: java iterable


【解决方案1】:

Iterable 要求类实现 Iterator iterator() 方法。

它不是一个空接口。 见:https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html

【讨论】:

  • 我的错。我正在阅读有关 Iterable 的摘要并在我拥有的项目中的一个随机类中对其进行了测试,我希望 Eclipse 会发出警告以实现所需的方法,但没有显示出来。原来它是一个抽象类,所以没有给出警告。 :-)
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 2016-06-26
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
相关资源
最近更新 更多