ホームページ >Java >&#&チュートリアル >Java 8 のオプション クラス: filter() メソッドを使用して null の可能性のある値をフィルタリングする方法

Java 8 のオプション クラス: filter() メソッドを使用して null の可能性のある値をフィルタリングする方法

王林
王林オリジナル
2023-08-01 17:27:231492ブラウズ

Java 8 のオプション クラス: filter() メソッドを使用して空の可能性のある値をフィルタリングする方法

Java 8 では、Optional クラスは、可能性のある null をより適切に処理できる非常に便利なツールです。 value を指定すると、NullPointerException の発生が回避されます。 Optional クラスには、潜在的な null 値を操作するためのメソッドが多数用意されています。重要なメソッドの 1 つは filter() です。

filter() メソッドの機能は、Optional オブジェクトの値が存在し、指定された条件を満たしている場合は、Optional オブジェクト自体を返します。値が存在しない場合、または条件が満たされていない場合は、空の値が返されるオプションのオブジェクト。

次のコード例は、filter() メソッドを使用して空の可能性のある値をフィルターする方法を示しています。

import java.util.Optional;

public class OptionalFilterExample {

    public static void main(String[] args) {
        String name = "John Doe";
        Optional<String> nameOptional = Optional.ofNullable(name);

        // 使用filter()方法过滤值为空的Optional对象
        Optional<String> filteredOptional = nameOptional.filter(n -> n.length() > 5);

        if (filteredOptional.isPresent()) {
            System.out.println("Name is longer than 5 characters");
        } else {
            System.out.println("Name is either null or shorter than 5 characters");
        }
    }
}

上記の例では、最初に空ではないオプションのオブジェクト名オプション、その値を作成します。それは「ジョン・ドゥ」です。次に、filter() メソッドを使用して、条件 n -> n.length() > 5 を渡します。この条件は、文字列の長さが 5 より大きいかどうかをチェックします。条件が満たされる場合、filter() メソッドは同じ値を含む Optional オブジェクトを返し、それ以外の場合は空の Optional オブジェクトを返します。

最後に、isPresent() メソッドを使用して、フィルターされた Optional オブジェクトに値が含まれているかどうかを確認し、結果に基づいて対応する情報を出力します。

実際の開発では、空の可能性のある値をフィルターで除外する必要があることがよくあります。 filter() メソッドを使用すると、このタスクを簡潔に実行できます。次に、リスト内の 10 を超える整数をフィルタリングして除外する方法を示す別の例を示します。

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class OptionalFilterListExample {

    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(15);
        numbers.add(8);
        numbers.add(20);

        List<Integer> filteredNumbers = new ArrayList<>();

        for (Integer number : numbers) {
            Optional<Integer> optionalNumber = Optional.ofNullable(number);
            optionalNumber.filter(n -> n > 10).ifPresent(filteredNumbers::add);
        }

        System.out.println(filteredNumbers);
    }
}

上の例では、最初に、いくつかの数値を含む整数リスト数値を作成しました。次に、for-each ループを使用してリスト内の各要素を反復処理し、それらを Optional オブジェクトにラップします。

次に、filter() メソッドを使用して 10 より大きい数値をフィルターで除外し、ifPresent() メソッドを使用してフィルターされた数値を filteredNumbers リストに追加します。

最後に、フィルタリングされたすべての数値を含む filteredNumbers リストを出力します。

Optional クラスの filter() メソッドを使用すると、考えられる null 値をより簡潔にフィルタリングでき、面倒な null チェックや NullPointerException につながる可能性のある状況を回避できます。これにより、コードがより堅牢になり、読みやすくなります。コードの品質と開発効率を向上させるために、開発では Optional クラスのさまざまなメソッドを活用することをお勧めします。

以上がJava 8 のオプション クラス: filter() メソッドを使用して null の可能性のある値をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。