skillup

技術ブログ

Java

Optionalについて その1

投稿日:

Streamに続いて、Java8で新搭載された機能がOptional です。

Javaではnullの処理をいちいちしなくてはいけないのがいろいろと面倒ですが、Optionalの機能をうまく使うことで可読性の高いコードを書くことができます。

私もまだ調査中なので本当に基本的な部分だけ紹介します。

Optionalとは?

Optionalとはnullかも知れない値をラップできる、オブジェクトです。

通常の処理

現状、Javaでは値にnullが入っているオブジェクトに対して処理をしようとするとExceptionが発生します。

これを防ぐために下記のようなチェック方法があります。

nullチェックその1

ifでチェック

この場合、何も出力されません。

nullチェックその2

例外を使ってキャッチする方法もあります。

nullと出力されます。

Optionalの使い方

Optionalはこのようにnullの可能性がある値をラップします。

メソッドの説明ですが、
Optional.ofNullable()はnullかもしれない値を取得します。
isPresent()は存在チェックなのでbooleanを返します。
str1.get()は値を取得します。
今回の場合、一切出力はされません。(文字がある場合、表示されます。)

ラムダ式を使った使い方

なお、下記のようにラムダ式を使った表記も可能です。

まだ全然調べられてないのでとりあえず今回はここまでにします。

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

try~catch~finallyで気を付けること

JavaでExceptionが発生したとき、基本的にはtry~catch~finallyをつかっているのですが、今回Exceptionが吐かれないという事態があったのでメモします。 [crayon-5 …

no image

JPAでのデータベースとの同期

このブログでも何回か書いてきたJPAですが、新規レコードをインサートさせた際IDを取得し、そのIDをもとに何らかのキーを作る、そういう処理があったので紹介させていただきます。 何回か書いてますが、JP …

no image

ガベージコレクタに関して

本日はガベージコレクタに関して。 Contents1 ガベージコレクタとは?1.1 1 nullを代入1.2 2 参照変数を他のオブジェクトに割り当てる1.3 finalize()メソッドの定義 ガベ …

no image

CDIの循環依存エラー&JSFでの条件分岐について

本日は小ネタなので2つのネタをまとめます。 Contents1 CDI循環依存エラー2 JSFでの条件分岐 CDI循環依存エラー 半年近くやってますが、いまだにJavaEEでエラーがでてくると焦ります …

no image

依存ライブラリを含むプログラムのjar化に関して

以前、jar化する場合のpomの記述方法について書いたのですが、一部記述が正しくなかったようです。 mavenでのjarファイル作成 この方法でやってもjarファイルを単独で取り出すとNoClassD …