21

私はJava8が初めてです。リストとフィルターを実装しました。コードで null チェックを実行しました。同じコード スニペットでリストが空でないかどうかを確認する方法を教えていただければ幸いです。リストが空でない場合、コードはアサーションを続行する必要があります。

    list.stream().filter(listElement -> listElement != null).
    forEach((listElement) -> Assert.assertEquals(
        ValueType.CANDY,
        listElement.getCandyType()));
4

4 に答える 4

8

isEmptyメソッドを確認する

if (list.isEmpty()) { ... }

ドキュメントは次のとおりです: https://docs.oracle.com/javase/7/docs/api/java/util/List.html#isEmpty()

于 2015-12-22T23:24:04.607 に答える
0

リストが空であると主張することは、リストの特定の要素が何らかの形式 (つまりgetCandyType() == ValueType.CANDY) を持っていると主張することとは別のものです。2 つのアイデアを結び付けようとすることは、物事を行うための正しい方法ではありません。

forEachあなたがする必要があるのは、の前または後に 2 番目のアサーションを追加することです。

assertThat(list.isEmpty(), not(equalTo(Boolean.FALSE)))

...または同様のもの。

空リストの大きなポイントの 1 つは、要素を含むリストと同じように処理できることです。これが、 Optional クラスNull パターンなどが存在する理由です。したがって、リストが空であることを本当に気にする場合は、それを別の明確なアサーションにする必要があります。

于 2015-12-23T01:32:00.623 に答える