2021年11月16日 05時00分 公開
特集/連載

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

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

[Cameron McKenzie,TechTarget]

関連キーワード

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 マーケティング新着記事

news154.jpg

2022年に向けてサプライパス最適化(SPO)への投資が増加――IAS調査
広告支出の多くがプログラマティックバイイングに向かう中、SPO戦略への関心が高まってい...

news103.jpg

なぜ日本企業だけがデータを中心としたコミュニケーションへの変化に否定的なのか
パンデミックがコミュニケーションに与えた影響について、ビジネスリーダーの評価が日本...

news172.jpg

マクドナルドが有名ゲーム配信集団とタッグを組む理由
米McDonald'sとFaZe Clanがライブストリーミングイベント「Friendsgaming」を実施。有名...