Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。3の注目機能を使えばより柔軟に、より可読性が高くどのようなソフトウェアでも同様に、新しいバージョンには新しい機能が備わっている。「現状の機能さえあれば問題ない。サポートが切れるなら仕方がない」と消極的ではもったいない。最新機能を使いこなせば、これまでにない恩恵を享受できる。3.0以上にアップグレードすると、Javaの最新バージョン(17以降)など最新の便利な機能が増えます。すると開発がもっと便利に、楽しくなります!」と元気よく言う。佐藤氏は現在新興商材プリセールスエンジニアでDevOpsや生成AIなどを担当しているが、実は前職が基幹系Webアプリケーション開発を行うエンジニアで長らくJavaを使っていた。そのためJavaプログラミングに詳しい。3.0は2022年11月にリリースされた。2.0のリリースから5年ぶりのメジャーバージョンアップとなる。19のサポートのほかにも、サードパーティーのライブラリのアップデート、GraalVMネイティブイメージのサポート、Prometheusのサポートがある。17新機能を2つ紹介する。Classes」、継承先を明示的に宣言・制御することが可能になるものだ。従来、継承先を制限する方法にはprivateやprotectedがあった。「データ構造的には分けたいが、privateなのでまとめてしまうか」「あまり継承してないけど制限したいからprotected」など、少し不便なところがあった。新しいSealedクラスなら「より柔軟かつ可読性の高い、データの目的に沿ったカプセル化が可能になります」と佐藤氏。使い方としてはクラスまたはインスタンスに「sealed」修飾子を付与し、permitsにより継承を許可するクラスを定義する。複数あるならカンマ区切りで列挙する。許可されるサブクラスはsealedで宣言されたスーパークラスの同じモジュール内やそのパッケージなど「近く」に存在している必要がある。permitsを省略するなら、スーパークラスを直接継承するクラスが自動で許可対象となる。継承したサブクラスには、それ以降の継承制限を示す修飾子をつける。修飾子には「final(以降の継承を不許可)」「sealed(サブクラスを制限)」「non-sealed(サブクラスを制限しない)」の3種類がある。これを使うことでprivateやprotectedでは表現できなかった、柔軟かつ明示的な条件の指定が可能となる。佐藤氏は「親クラスを見れば継承されている子クラスが分かるので、可読性がかなり上ります」と言う。switch式でステートメントのパターンマッチングが利用可能となる。21で正式採用となる。佐藤氏は「caseでパターンマッチングを可能とすることで、switch式とステートメントの表現力と適用範囲を拡張します」と説明する。caseでnullやdefault、レコードクラスの指定許可、またswitch式でsealedクラスを指定可能、ガードパターン(caseにwhenで条件)を追加可能となった。switch対象の条件が緩和され、これまでif文で作成していたものもswitchで対応可能となった。これまでのようにif文の条件分岐ではあらかじめ値を代入しておかないと、条件によってはnullが返ってしまいバグに繋がるリスクがある。すべての分岐を通ると実行時間が長くなってしまうこともある(最も可能性が高い条件を一番上に書く必要がある)。新しいswitch式であれば、null条件もcase文の中に入れることができ、double型も比較可能となり、default指定も可能となる。佐藤氏は「ぱっと見た時に何をしているか分かりやすく、もちろん最適化もできています。可読性が高くなっているのではないでしょうか」と力を込める。システム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容ですこの著者の最近の執筆記事CodeZine編集部(コードジンヘンシュウブ)CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。12:00オルツ、日本語RAGでは軽量型LLMとして世界最高の精度と推論速度を達成した「LHTM-OPT2」をリリース新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。