ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java8 レシーバーパラメーター

2020-06-24 18:00:32 | PG(Java)

本日の話題:https://twitter.com/nagise/status/1275684711390679040

メソッドの引数にthisが指定されているけど何?という話。
聞き覚えがあるような無いような気がしたけど、自分のページには記載が無かったのできっと知らなかったのだろう^^;というわけで追加した。→レシーバーパラメーター

ググってみると、megascusさんのブログが引っかかった。さすがやで。
アノテーションを付けるための仕組みらしい。ラムダ式のvarもそのために追加されたんだったなぁ。

いまいちぴんと来ないけど、RIP Tutorialというサイトによると、内部クラスのコンストラクターの(暗黙の)引数である親クラスインスタンスに対しても同様の指定が出来るらしい。
(これと整合性を合わせるために、メソッドの引数でもthisを指定できるようにしたのではないかなーという気がする)
こちらなら、まだアノテーションを付けたい場合がありそうな気がしないでもない。

ちなみにこのサイトの例は間違ってるみたいで、親クラスのthisを指定するコンストラクターは
Inner(Outer Outer.this)
のように親クラス名でthisを修飾しないといけないみたい。



最新の画像もっと見る

コメントを投稿