3

単純に、コロンの後に foreach ループに渡すことができる型を Java で作成することは可能ですか? もしそうなら、どのように?

最初は、foreach は配列に対してしか機能しないと思っていましたが、その後、Lists を反復処理できることに気付きました。私の質問は、これはインタープリターが自動的に行うものですか、それとも使用できる独自のクラスを作成することは可能ですか?

4

4 に答える 4

6

はい、Iterableインターフェースを実装するだけです。

http://docs.oracle.com/javase/6/docs/api/java/lang/Iterable.htmlから:

このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。

于 2013-07-25T21:22:22.200 に答える
2

はい、可能です。インターフェイスを実装する必要があり、拡張ループIterableで使用できます。for

ドキュメントが言うように:

このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。

于 2013-07-25T21:22:30.630 に答える
1

この機能を実現するには、Iterableインターフェイスを実装できます。iterator()独自のメソッドを実装する必要があります。次に、foreach ループを使用できます。

于 2013-07-25T21:22:53.383 に答える
1

はい。Java 言語仕様にあるように、Iterableインターフェースを実装する必要があります。その場合、クラスのインスタンスを拡張forループで使用できます。

Iterableは非常に単純なインターフェイスです。インスタンスiteratorを返すメソッドが必要です。Iterator<T>

于 2013-07-25T21:23:31.590 に答える