Javaでリフレクションをやってみる

某雑誌でかなり前に取り上げられていたんだが、思い出して作ってみた。
リフレクションとは、簡単に言うと、String型に代入された文字列で、クラスを定義する、というものだ。

String hoge = "testClass";

という変数から、 testClass.java のインスタンスが作れるのだ。

雑誌で取り上げられていたネタとしては、メンテナンスフリーとして使える、というものだった。
新しいデータクラスが必要になっても、外部から文字列を読み込めるようにしておくと、再ビルドすることなく、取り込める、とかなんとか。

で。
実際やってみると、これが全くのデタラメである(笑)

私は、eclipseなどは使わず、コマンドラインから javac でビルドしているのだが、
ソースコード中で一度も testClass を使わなければ、そもそも、testClass.java はビルドされない。

そりゃそうだ、ビルド時は、単なる文字列なんだから。
なので、ClassNotFound になる。

これを回避するには、だ。

・ソースコードのどこかで、ダミーでいいので、testClass を使う
・本プロジェクトとは別に、testClass.java をビルドして、.classを作り、使う

とかなんとかして、.class 作る必要がある。
スマートなやり方じゃないよなぁ。
[PR]
by miries | 2014-11-27 01:06 | ゲームを作る


<< 白猫のぷにこん? 絶賛炎上中 >>