Java:クラスの名称を可変にして生成したい場合(振分処理など)
Java (21 items)
2005年03月05日
各クラスを生成したい場合、通常はクラス名がわかっていないと生成できません。
しかし、ClassクラスのnewInstance()メソッドを使用することにより、生成することができます。
しかし、ClassクラスのnewInstance()メソッドを使用することにより、生成することができます。
例
jp.co.restart.test.TestActionクラスを生成したい場合
通常
可変
どちらでも、TestActionクラスを生成することができます。
例えば、jp.co.restart.common.TestBaseクラスを、すべてのActionクラスが継承しておくと、
クラス名称をプロパティファイル等に設定しておいてクラス名を取得するだけで、
いろいろなクラスを生成できたりします。
サーブレットから各Actionクラスを振分をする時等に、便利です。
jp.co.restart.test.TestActionクラスを生成したい場合
通常
TestAction action = new TestAction();
可変
String classNm = "jp.co.restart.test.TestAction";
TestAction action = (TestAction)Class.forName(classNm).newInstance();
どちらでも、TestActionクラスを生成することができます。
例えば、jp.co.restart.common.TestBaseクラスを、すべてのActionクラスが継承しておくと、
クラス名称をプロパティファイル等に設定しておいてクラス名を取得するだけで、
いろいろなクラスを生成できたりします。
サーブレットから各Actionクラスを振分をする時等に、便利です。
前の記事 次の記事
