2021/9/15にJava17が出たので、例によって変更点を見てみました。
久しぶりのLTSなのに(LTSだからか)、あまり大きな変更点は無い印象ですね。
シールクラスが正式版になったくらい。
と思っていたら、プレビュー版にswitchのパターンマッチングが来てましたね。
instanceofのパターンマッチと同様なものがcaseに指定できるのは、ある種のコードを書くにはすごく便利です。
でもまぁ全般的に使われる機能じゃないし…と思ったんですが、これに関連してか、
caseにnullが指定できるようになるんですね!これを待ってました!
さらに、caseにdefaultが指定できるようになります。アロー構文「->」で他の値とdefaultをカンマ区切りで一緒に宣言できるようになるので、とても便利です。
また、プレビュー版ではシールクラスをswitchに指定できます。
正式版のシールクラスのみではあまり意味が無い感じだったんですが、switchでは網羅チェックがされるので、意味が出てきますね。
あ、あとHexFormatクラスが新設されてます。(何故このタイミングで^^;)
今後は、十六進数の文字列を扱いたい場合は、これを使うのが良さそうです。