Java 16 も出たことだし
今年の9月にリリースされる LTS の 17 に備えて、きしださんの記事を読みながら新しい機能の言語仕様の部分だけ触って遊んどいた。
Java 12 と 13 では言語仕様に関してプレビューはあったけど正式のものはなかったみたいなので、14, 15, 16 をチェックした。
コード
は、ここに置いといた。
Java 14
JEP 358: Helpful NullPointerExceptions
メッセージが分かりやすくなるやつ。嬉しい。
Java 15 からはオプションがデフォルトで ON になったみたい。
あれ?オプションつけなくてもHelpful NullPointerExceptions になるぞ?と思ったら、Java 15 からデフォルトでONになったのか。
— Mitsuyuki Shiiba (@bufferings) March 23, 2021
Enable ShowCodeDetailsInExceptionMessages by defaulthttps://t.co/vDmwZBzaBk
JEP 361: Switch Expressions
これも嬉しいな。これまで Switch はあんまり好きじゃなくて使ってこなかったけど、機会があったら使いたい気持ちになった。
Java 15
JEP 378: Text Blocks
これも嬉しいやつ。インデントが一番浅いところに揃えられるの、優しい。
Java 16
JEP 394: Pattern Matching for instanceof
これも毎回「なんでキャストしないといけないのー?」って思ってたから嬉しい。あと、not で throw とか return とかしたときに、その後ろで変数が使えるの、優しい。
JEP 395: Records
これも嬉しいなー。値オブジェクトとかで使えるのかなぁ。
[JDK-8180352] Add Stream.toList() method
これも地味に嬉しい。
おもしろかったー!
新しい機能、全体的に嬉しい感じなので嬉しい。
どっちかというと、Java 16 だと Gradle 7.0 RC 1 を使わないといけないとことか、JUnit 5 のドキュメントを読んだりする方に時間がかかったけど、それも含めておもしろかったー!