Java の要素のリストにフィルター メソッドを実装したいので、フィルターに従ってリスト内のいくつかの要素を取り除くことができます。そして、最も重要なことは、インターフェイスをできるだけシンプルに設計したいということです。
これが私の実装です。EasierList という名前のクラスを作成し、そのクラスに、署名と実装が次のようなメソッドを追加しました。
public IEasierList<T> filter(ISelection<T> filter) {
List<T> result = new ArrayList<T>();
for(T item : mInternalList) {
if(filter.accept(item)) {
result.add(item);
}
}
mInternalList = result;
return new EasierList<T>(this);
}
ISelection インターフェイスに関しては、非常に簡単です。
public boolean accept(T obj);
したがって、このクラスを使用するユーザーは、フィルターを使用するために次のようなコードを記述する必要があることがわかります。
aEasierList.filter(new ISelection<T>() {
@Override
public boolean accept(T obj) {
// some test
return false;
}
});
これを行うためのより良い方法があるかどうか疑問に思っています。インターフェイスをさらに使いやすくすることを意味しますか?
前もって感謝します!