文字列からクラスのインスタンスを生成
November 10, 2009,
tags:
java
インスタンス
文字列
生成
Javaでのお話です。
受け取った値から特定のクラスを生成したいプログラムが書きたい。と思いました。
phpだったらevalとかつかうのかな?ちゃんとまだ理解していないのですが・・・。
で、Javaの場合はこんな感じですか?
たとえばServiceってクラスがあってそれを文字列から生成したい場合だとして。
LoadClass.java
public class LoadClass{
public void loadTest(String className){
try{
Class clazz = Class.forName(className);
if (clazz != null) {
Service service = (Service)clazz.newInstance();
}
}catch(ClassNotFoundException e){
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
Service.java
class Service {
Service() {
System.out.println("Service class new!!");
}
}
Test.java
class Test {
public static void main(String args[])
{
LoadClass lc = new LoadClass();
lc.loadTest("Service");
}
}
後は適当にコンパイルしてくだはい。
ちなみに実行結果
java Test
Service class new!!
こんな感じです。
まだJavaはあまりよくわからないですね・・・。フレームワークとか覚えなきゃなぁ。。。
だれかStrutsとか・・・教えてください。
参考サイト
http://www.syboos.jp/java/doc/create-object-instance-from-string.html