内部クラスを リフレクションを使ってインスタンス化する方法を追記。
外側クラスのメソッド内から内部クラスをインスタンス化するときは、ソースの見た目上は普通の方法「new A()」と変わらない。が、実際には「this.new A()」となっているのだと思う。
リフレクションを使う場合はthisなんて考慮されないだろうからどうするんだろうと思った。
とりあえずダメだろうと思いつつ、通常の引数無しコンストラクターと同じ方法でnewInstance()してみたら、案の定「そんなメソッドは無い」というお言葉(例外発生)。
javapで見てみたら、確かに“引数無しのコンストラクター”が無くてちょっとビックリ。
代わりに“外側クラスのインスタンス”を引数にとるコンストラクターが有ったというわけ。
どうやらC++における暗黙の引数this(C++では「関数呼び出し」の際に暗黙の引数としてthisポインターが渡されるらしい)と同じようなものが現れているようだ。
…しかしこんなの、誰か実際に使うんだろうか(苦笑)
※コメント投稿者のブログIDはブログ作成者のみに通知されます