public interface Processor<T> {
public void process(T object);
}
そしてヘルパーメソッド:
public static <T> void processAll(Collection<T> items, Collection<? extends Processor<T>> processors) {
Iterator<T> i = items.iterator();
Iterator<? extends Processor<T>> p = processors.iterator();
while(i.hasNext() && p.hasNext())
p.next().process(i.next());
}
が一つだけである(が、それprivate
作る)場合は、それを使用するクラスにそのヘルパーメソッドを置くことができ、またはそれにユーティリティを置きますプログラム全体で共有されるクラスです。
もちろん、processAll
をコードする他の方法もあります。たとえば、コレクションの1つにfor
ループを使用できます。しかし、どのような場合でも、この低レベルのコードをヘルパーメソッドに分解すると、より高レベルのコードがより洗練され、「ノイズの少ない」ものになります。また、プログラムの複数の部分で同様のことをしている場合は、ヘルパーメソッドを共有できます。
がサポート反復処理可能なインタフェースしていますか? – Wint
いいえ、それは単なるカスタムオブジェクトです。どのように役立つでしょうか? – Jim
この答えをチェックしてください:http://stackoverflow.com/a/8104205/1029272簡単に実装し、治療を動作します。私はそれを試して最後の5分以内にそれを試して実行しています。 – Deco