ホームページ  >  記事  >  Java  >  Java8で新しく導入されたクラスOptionalのサンプルコードを共有します

Java8で新しく導入されたクラスOptionalのサンプルコードを共有します

零下一度
零下一度オリジナル
2017-05-24 11:41:382003ブラウズ

OptionalはJava 8で新しく導入されたクラスです
これはnullにできるコンテナオブジェクトです。値が存在する場合、isPresent() メソッドは true を返し、get() メソッドを呼び出すとオブジェクトが返されます。
java.lang.NullPointerException は、Java プログラマーであると自称する限り、この例外についてはよく知っているでしょう。この例外がスローされないようにするには、次のようなコードを記述することがよくあります:

Person person = people.find("John Smith");
if (person != null) {
 person.doSomething();
}

残念ながら、ほとんどの Java コードでは、null 参照のチェックを忘れることが多いため、 NullPointerException も続きます。
「ヌルは最悪だ。」 これはダグ・リーのヌルに対する評価です。 Java プログラマーとして、Doug Lea が誰であるかをまだ知らない場合は、急いでレッスンを補ってください。彼の貢献がなければ、マルチスレッドを処理するために Java の最も原始的な機器しか使用できません。
「私はこれを私の 10 億ドルの間違いと呼んでいます。」これを言う資格があるのは、null 参照の発明者である C. A. R. Hoare 卿です。 Doug Lea のことを知る必要はありませんが、この老人のことは知っておく必要があります。そうでない場合は、クイック ソートを使用する資格がありません。
Java の世界では、Null 参照の問題を解決する一般的な方法は、Null Object モードを使用することです。この場合、「何もない」場合はNull Objectが返されるため、クライアントコードは空かどうかを判断する必要がありません。ただし、このアプローチにはいくつかの問題があります。まず、Null オブジェクトのコードを記述する必要があることは間違いありません。このパターンを大規模に適用したい場合は、ほぼすべてのクラスに対して Null オブジェクトを記述する必要があります。

幸いなことに、別のオプションがあります: オプションです。オプションは null 許容オブジェクトのカプセル化であり、実装は複雑ではありません。 Scala などの一部の言語では、オプションの実装が言語の一部になります。 Java プログラマ向けに、Guava はオプションのサポートを提供します。さっそく、Optional を使用して前のコードを完成させる方法について説明しましょう。

Optional person = people.find("John Smith");
if (person.isPresent()) {
 person.get().doSomething();
}

ここで isPresent() が false を返した場合、これは空のオブジェクトであることを意味します。それ以外の場合は、コンテンツを取り出して、やりたいことを実行できます。
コード サイズの削減を期待している場合は、残念ながらここで失望するでしょう。コード サイズだけで言えば、Optional のコードはオリジナルよりも多くなります。ただし、ここで取得するものは Person クラスのオブジェクトではなく、Optional であるため、null のチェックを忘れることはありません。
以下は個人練習用のコードです

​​


[関連する推奨事項]

1. Java 8の新しいAPI - オプションの使用例

2. Java 8のオプションクラスのサンプルチュートリアル

🎜

以上がJava8で新しく導入されたクラスOptionalのサンプルコードを共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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