ひしだまの変更履歴

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

内部クラスのリフレクション

2007-02-09 21:04:19 | PG(Java)

内部クラスリフレクションを使ってインスタンス化する方法を追記。

外側クラスのメソッド内から内部クラスをインスタンス化するときは、ソースの見た目上は普通の方法「new A()」と変わらない。が、実際には「this.new A()」となっているのだと思う。
リフレクションを使う場合はthisなんて考慮されないだろうからどうするんだろうと思った。
とりあえずダメだろうと思いつつ、通常の引数無しコンストラクターと同じ方法でnewInstance()してみたら、案の定「そんなメソッドは無い」というお言葉(例外発生)。
javapで見てみたら、確かに“引数無しのコンストラクター”が無くてちょっとビックリ。
代わりに“外側クラスのインスタンス”を引数にとるコンストラクターが有ったというわけ。

どうやらC++における暗黙の引数this(C++では「関数呼び出し」の際に暗黙の引数としてthisポインターが渡されるらしい)と同じようなものが現れているようだ。


…しかしこんなの、誰か実際に使うんだろうか(苦笑)



最新の画像もっと見る

コメントを投稿