Java8で新しく導入されたクラスOptionalのサンプルコードを共有します
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 のチェックを忘れることはありません。
以下は個人練習用のコードです
[関連する推奨事項]
2. Java 8のオプションクラスのサンプルチュートリアル
🎜以上がJava8で新しく導入されたクラスOptionalのサンプルコードを共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java8 は、minus() メソッドを使用して 1 年前の日付または 1 年後の日付を計算し、1 年前の日付を計算します。 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDateprevious Year=today.minus(1,ChronoUni

Java8 で 1 週間後の日付を計算する方法 この例では、1 週間後の日付を計算します。 LocalDate 日付には時間情報が含まれません。その plus() メソッドは、日、週、月を追加するために使用されます。これらの時間単位は ChronoUnit クラスで宣言されます。 LocalDate も不変型なので、戻った後に変数を使用して値を割り当てる必要があります。 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

はじめに Java のオプションはコンテナ オブジェクトであり、null 以外の値を含めることも、空にすることもできます。その主な目的は、コードを記述するときに null ポインター例外を回避することです。 1. Optional オブジェクトの作成 of() メソッドを使用して、null 以外の値を含む Optional オブジェクトを作成できます (例: Optionaloptional=Optional.of("value"))。 ; ofNullable() メソッドを通じて作成することもできます。null 値を含む可能性のある Optional オブジェクト (例: Optionaloptional=Optiona)

Java で Optional 関数を使用して null 値を処理する方法 Java プログラミングでは、null 値を処理する場面によく遭遇します。 Null ポインター例外はよくあるエラーですが、この状況を回避するために、Java8 では null 値の状況を処理する Optional クラスが導入されました。 Optional クラスは、空でない値を含めることができる、または値を含めないコンテナー クラスです。 Optional クラスを使用すると、null 値の状況をより適切に処理し、null ポインター例外を回避できます。下

Java8 の Clock クラス Java8 では、現在のタイムスタンプ、つまり現在のタイムゾーンの日付と時刻の情報を取得するための Clock クラスが追加されています。以前に System.currentTimeInMillis() と TimeZone.getDefault() が使用されていた場合は、Clock に置き換えることができます。 packagecom.shxt.demo02;importjava.time.Clock;publicclassDemo10{publicstaticvoidmain(String[]args){//現在のタイムベースを返します

Java8 で現在のタイムスタンプを取得します。Instant クラスには、次に示すように、現在のタイムスタンプを返す静的ファクトリ メソッド now() があります。 Instanttimestamp=Instant.now();System.out.println("このインスタントの値は何ですか"+timestamp.t

事前定義された書式設定ツールを使用して Java8 で日付を解析または書式設定する方法 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;publicclassDemo17{publicstaticvoidmain(String[]args){StringdayAfterTommorrow="20180205 ";LocalDateformatted =LocalDate.parse

Java8 で 2 つの日付が等しいかどうかを判断する packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo04{publicstaticvoidmain(String[]args){LocalDatedate1=LocalDate.now();LocalDatedate2=LocalDate.of(2018,2,5) ;if(date1.equals(date2)){System.out.println("時間が等しい");}e
