最近Rustを勉強していたので(といってもj4rsを使ってJavaを呼び出して遊んでいたので、Javaから離れていたわけではないぞ(爆))、Java23が出たのに調査がちょっと遅れてしまった^^;
しかし、さくらばさんが『JEPでは語れないJava 23』で今回はそれほど変化は無いと書いている通り、APIの変更という意味では確かに目ぼしいものは無かった…。(だから今回きしださんはブログを書いてないのだろうか^^;)
でもそんな中で青天の霹靂だったのが、マークダウン形式Javadoc!
プレビューも無かったし、そんなものが導入されるとは全く思ってなかった^^;
(ちなみにマークダウン形式Javadocは「/**~*/」ではなく「///」を使う。ちょうどRustを勉強していたので「Rustと同じじゃん!」と思ったけど、勉強してなかったら「なんだそりゃ」と思ったことだろう…)
最新版のEclipse(Java23プラグイン導入済み)だと「///」の行でEnterを押したら次の行も「///」を入れてくれるし、ポップアップでちゃんとJavadocとして表示してくれるので、十分便利だ。(まだ多少バグがあるようだけど、すぐに修正されていくだろう)
最近は(GitHubのissueとかで)けっこうMarkdownで文章を書いているので、マークダウン形式Javadocもちょっと書いてみたけど、ほとんど違和感ないですね。素晴らしい。
あと、今回新しくプレビュー版機能に追加されたプリミティブ型のパターンマッチ。
他の言語だと普通に出来ていることがJavaでも出来るようになる感じだけど、旧バージョンとの互換性を崩さずswitchとかinstanceofに徐々に機能を追加していって、ようやくJavaでも出来るようになった、というのがいかにもJavaっぽい(笑)
その他のプレビュー版機能はほとんど繰り越しのようだけど、コンストラクターでsuper()呼び出しの前に文を入れられるという機能にちょっと変化があった。
親インスタンスの初期化前に自クラスのフィールドを初期化できるようにするというもので、「マジか?!」って思ったんだけど、さくらばさんはニーズはほとんど無いだろうって書いてましたね(汗)
自分は、親コンストラクターから子クラスでオーバーライドされたメソッドを呼んだけどフィールドが未初期化でnullのままなので「うぅ…」ってなった経験があるので、ニーズが無いことはないと思います、はい^^;(あまりやるべきじゃないんでしょうけどね、ええ、分かっておりますともorz)
※コメント投稿者のブログIDはブログ作成者のみに通知されます