単純に、コロンの後に foreach ループに渡すことができる型を Java で作成することは可能ですか? もしそうなら、どのように?
最初は、foreach は配列に対してしか機能しないと思っていましたが、その後、List
s を反復処理できることに気付きました。私の質問は、これはインタープリターが自動的に行うものですか、それとも使用できる独自のクラスを作成することは可能ですか?
はい、Iterable
インターフェースを実装するだけです。
http://docs.oracle.com/javase/6/docs/api/java/lang/Iterable.htmlから:
このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。
はい、可能です。インターフェイスを実装する必要があり、拡張ループIterable
で使用できます。for
ドキュメントが言うように:
このインターフェイスを実装すると、オブジェクトを「foreach」ステートメントのターゲットにすることができます。
この機能を実現するには、Iterable
インターフェイスを実装できます。iterator()
独自のメソッドを実装する必要があります。次に、foreach ループを使用できます。
はい。Java 言語仕様にあるように、Iterable
インターフェースを実装する必要があります。その場合、クラスのインスタンスを拡張for
ループで使用できます。
Iterable
は非常に単純なインターフェイスです。インスタンスiterator
を返すメソッドが必要です。Iterator<T>