2023/3/21にJava20が出たので、新機能をメモ。
きしださんのJava 20新機能まとめによると、今回はJEP429 Scoped Valuesが追加になった程度で、大きな修正は無いらしい。
とはいえ、レコードのパターンマッチングに拡張for文(for each構文)が対応したというは、ちょっと驚いたw
それから、リフレクション関連で地味にAccessFlagという列挙型が追加されていた。
今までpublicやstaticといった修飾子はModifierというクラスの整数値の論理和で表していたけど、それの列挙型版w
さらに驚いたのは、新設されたClassFileFormatVersionという列挙型。
今まで、「Javaのバージョン」と「classファイルのバージョンの数値」を対応付ける方法が分からん…と言っていたんだけど、今さらそれが分かるクラスが追加になるとはw
(追記)
javacの--releaseで7が指定できなくなった(Java7のコンパイルが出来ない)。
それと、8を指定すると警告が出るようになった。いよいよJava8の廃止が見えてきたのか…Asakusa FrameworkはいまだにJava8なんだけどな^^;