0

だから私は次のものを持っています:

Object a = data.getA();
Object b = data.getB();
Object c = data.getC();
// and so on

これらのオブジェクトは API 呼び出しから取得され、null の場合があります。これらのオブジェクトをリストに入れたいのですが、null でない場合のみです。

たくさんの行を書くことができました:if(a!=null) {myList.add(a}など。しかし、毎回nullチェックを行う必要を回避する、よりエレガントな方法があると感じています(これを行うヘルパーメソッドを作成することは別として)。

たとえば、javascript を使用すると、クロージャーを作成できます。Javaのアイデアはありますか?

4

4 に答える 4

7

ユーティリティメソッドはどうですか?

public static <T> void addIfNotNull(Collection<T> col, T element){
    if(element != null){
        col.add(element);
    }
}
于 2011-04-14T12:34:25.340 に答える
3

GoogleCodeでProjectLambdaJを試すことができます。これは、Javaでのクロージャの使用において非常に成熟しています。

条件でのフィルタリング:

特定の条件でコレクションのアイテムをフィルタリングすることは非常に一般的なタスクであり、lambdajの使用は次の例のように簡単です。

List<Integer> biggerThan3 = filter(greaterThan(3), asList(1, 2, 3, 4, 5));

リストのフィルタリング方法を定義する条件は、ハムクレストマッチャーとして表されます

または、JDK8を待つこともできます:-)

于 2011-04-14T12:44:32.933 に答える
0

多分コンセプトを使用できます: http://www.natpryce.com/articles/000776.html

于 2011-04-14T13:03:02.337 に答える
0
List list = new ArrayList();

add(data.getA());
add(data.getB());
add(data.getC());

private add(Object o) {
    if (o != null) {
        list.add(o);
    }
}
于 2011-04-14T12:35:10.237 に答える