0

非常に基本的な質問を念頭に置いています。Iteratorはインターフェースであるため、オブジェクトを作成するには、Iteratorを実装するクラスを作成してから、そのためのオブジェクトを作成する必要があります。しかし、イテレータの使用を見たとき、それを実装するクラスがなくてもインターフェイスを直接参照しているため、混乱しました。例えば ​​:

HashMap map = new HashMap();
   map.put("1", "One");
   map.put("2", "Two");
   Iterator i = map.entrySet().iterator();

どうして私たちはインターフェースのオブジェクトを持っているのですか!

4

2 に答える 2

5

Iteratorはインターフェースですがmap.entrySet().iterator()、Iteratorインターフェースを実装するオブジェクトを返します。

于 2012-05-14T11:04:18.450 に答える
0

その呼び出しからいくつかの実装を取得します。強制される(そして文書化される)もの以上のものがイテレーターインターフェースであると想定することはできません。「匿名の内部クラス」を探します。

于 2012-05-14T11:04:05.863 に答える