【发布时间】:2016-01-10 04:30:18
【问题描述】:
我正在研究 Java.util 包的基本接口和类。现在接口 Set 是 Collection 和 Iterable 的子类,所以 Set 有 Iterator 模块。那么为什么我使用迭代器接口的引用呢?
Iterator<String> iterx = x.iterator();
Iteratr 也是一个接口。但我没有看到关于 Iterable 接口和 Iterator 接口的任何关系。 Iterable 有一个名为 Iterator 的模块。写起来不会更正确
Iterable.Iterator iterx = x.iterator();
因为x.iterator调用了Set已经被Iterable继承的模块,而不是调用Iterator接口。
我有什么不明白的?
【问题讨论】:
-
不确定您在问什么,但您写入代码的限定类名 (
java.lang.Iterable) 与继承无关。 -
迭代器方法(结果类型为
Iterator)是实现Iterable的类必须提供的。
标签: java interface iterator iterable