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

JAXRSによるRESTAPI作成方法

業務でJavaによりWEBAPI(Rsetful API)を作成する機会ががあったのでちょっとメモしておきます。 Contents1 RestAPIとは2 プログラムの作成方法について RestAPI …

no image

JavaEEでリダイレクトを伴うデータ入出力(flashの活用)

JavaEEで何らかの処理を行い、リダイレクトさせる場合、リダイレクト前のデータを保存し、リダイレクト後のページにデータをもちこしたいときなどがあると思います。 オブジェクトの変数自体はスコープアノテ …

no image

Streamでの特定条件化のカウント&合計値算出

Java8、streamで値を抽出し、カウントと合計値の算出について、小ネタです。 一番多いのがList<Map>タイプの値の検出です。 [crayon-5f2856e0c33257871 …

no image

GlassFish&Junitの不具合

JavaEE(JSF+JavaBean+EJB+JTA)でアプリを製作しているのですが、EJBの部分のjunitができないことが判明しました。 正確に言うとラムダ式を使うと不具合がでます。原因としては …

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …