2023/9/19にJava21が出たので、例によって変更点を調査。
真面目な見どころはきしださんやさくらばさんのサイトで見てもらうとして、自分が今回の目玉だと思った機能は。
なんと言っても、Listに getFirst() や getLast() が追加になったことですね!
今まで末尾要素を取得するには、list.get(list.size() - 1) というちょっとくどいコードを書く必要がありましたからね。
先頭要素の取得も、list.get(0) より list.getFirst() の方が意図が分かりやすいし。
LinkedHashSetやLinkedHashMapでも同様に先頭・末尾が取得できるのは便利。
それから、ようやくswitchで case null が書けるようになりましたね!
これ、JDK1.5(Java5)でswitchに列挙型が書けるようになった頃から欲しかった…。
switchでデータ型のマッチングが出来るようになったのも嬉しい。普通の人はあまり使わないかもしれないけど、Embulkプラグインのように色々なデータ型を処理するツールを作るときは、これがあるととても捗る。Java11にあったら使いまくったんだけどなぁ。
ちなみにswitchといえば、レコードのパターンマッチングとかにプレビュー版にはあったけどJava21の正式版には無い機能があってハマったorz
まさかプレビュー版から機能が削られることがあるとは思わなかった…。
あとはプレビュー機能でも文字列テンプレート(文字列補間)とか無名変数とかmainメソッド簡略化とか面白いものが増えてるけど、これらはいずれ正式機能になった時に。
面白いと言えば、Characterクラスに追加になったisEmojiメソッドかな。「emoji」って英語なのか?!^^;