「Java 17」の「NullPointerException例外処理分析」に役立つ機能は?「Java 17」注目機能5選【後編】

「Java 17」で利用可能な機能の中には、アプリケーション開発を支援するさまざまな機能がある。例外処理、switch文、継承に関する機能を解説する。

2021年11月16日 05時00分 公開
[Cameron McKenzieTechTarget]

関連キーワード

Java | Oracle(オラクル)


 2021年9月にOracleはプログラミング言語・実行環境「Java」のLTS(長期サポート版)「Java 17」を提供開始した。前編「『Java 17』のうれしい機能『Recordクラス』『テキストブロック』は何が便利?」に続く本稿は、開発者にメリットをもたらすJava 17の機能5個のうち、残る3個を取り上げる。

機能3.NullPointerExceptionに関するログ

 適切に書かれたプログラムでも、null値(データがない状態)の参照によるエラーが発生することは少なくない。Javaにおいてこのエラーを「NullPointerException」と呼ぶ。

 Javaのログには、NullPointerExceptionが発生したときにどのオブジェクト(データと処理をまとめたもの)に問題があるのか、プログラムが何を参照したのかを知る手掛かりが多くなかった。Java 17ではnullだった変数の正確な名前がログに記録されるようになったことで、NullPointerExceptionの原因がより分かりやすくなった。

機能4.switch文の矢印

 「switch」文は条件分岐を扱うための文だ。Javaのswitch文は複雑な条件分岐ロジックに適している。一方で条件ごとの処理で「break」を書かないと、後続の条件の処理も実行される点は直観的とは言えない。これはswitch文でエラーが起こりやすい原因となっていた。

 Java 17ではswitch文で矢印(->)を使うことで、breakを使わずに後続の条件の処理を実行することなく指定の処理を実行できる。これによってswitch文が読みやすくなるとともに、ソースコードの記述やデバッグも容易になった。

機能5.Sealedクラス

 クラス(オブジェクトの基となる設計図)の「継承」は、基となるクラスの変数(データの入れ物)やメソッド(データに対する操作)を引き継いで、新たなクラスを作成することだ。これまでは継承に基づいてオブジェクトが不正に作成されるのを防ぐ仕組みが、Javaにはほとんどなかった。

 Java 17で正式に導入されたSealedクラスは、継承が想定外に使用されるのを防ぎやすくする。Sealedクラスは、継承できる変数やメソッドの名前を明示的に宣言できるクラスだ。


 Java 17は構文や機能に大きな変更はないが、Java開発者にとって役立つ小さな改良が複数盛り込まれている。そうした改良は全て、Javaがこれからも開発に適したプログラミング言語であり続ける要因となるだろう。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

ITmedia マーケティング新着記事

news038.jpg

生活者の生成AI利用動向 10代後半はすでに5割近くが経験――リクルート調査
テキスト型生成AIサービスの利用経験者の割合は若い年代ほど高く、特に10代後半はすでに5...

news108.jpg

今度の「TikTok禁止」はこれまでとどう違う?
米国ではまたしてもTikTok禁止措置が議論されている。これまでは結局実現に至らなかった...