Class.forName/newInstance - 文字列からインスタンスを生成

2009/02/12 18:12Update
TAGS: Class.forName | newInstance | インスタンス

文字列からインスタンスを生成する例です。

シンプルなサンプルから説明します。
Javaコード:
package com.test.reflection;

public class TestReflection {
    public static void main(String []args) {
        String className = "com.test.reflection.MyClass";
        
        try {
            Class clazz = Class.forName(className);    //文字列からClass取得
            if (clazz != null) {
                MyClass myClass = (MyClass)clazz.newInstance();    //Classによって新しいインスタンス生成
                myClass.sayHello();
            }
        } catch (ClassNotFoundException e) {    //by Class.forName
            //指定した名称のクラス存在しなかった場合
            e.printStackTrace();
        } catch (InstantiationException e) {    //by newInstance()
            //インスタンス作成不可の場合(パラメータなしのコンストラクタ存在しない場合 - new Xxxx()でエラーの場合)
            e.printStackTrace();
        } catch (IllegalAccessException e) {    //by newInstance()
            //権限はないとき
            e.printStackTrace();
        }
    }
}

class MyClass {
    public void sayHello() {
        System.out.println("Hello!");
    }
}


とても簡単な例なので、説明を省きます。

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation