Web Artisan Blog - ウェブ アルチザン ブログ

Java:クラスの名称を可変にして生成したい場合(振分処理など)

Java (21 items)

2005年03月05日

Research Artisan Pro ←リサーチアルチザンがパワーアップして復活しました!!
各クラスを生成したい場合、通常はクラス名がわかっていないと生成できません。
しかし、ClassクラスのnewInstance()メソッドを使用することにより、生成することができます。



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クラスを振分をする時等に、便利です。
前の記事 次の記事

Comments

通りすがり wrote:

これってTestActionクラスを毎回newしているのですよね?
それよりか、アクションクラスをStaticメソッドにしちゃった方が、いいのではないでしょうか?
2006年01月20日 10時02分55秒

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=441