jp.terasoluna.fw.util
クラス ClassUtil

java.lang.Object
  上位を拡張 jp.terasoluna.fw.util.ClassUtil

public final class ClassUtil
extends java.lang.Object

文字列(String)から、インスタンスを生成するユーティリティクラス。

  • 通常のインスタンス生成処理
  •      Integer integer = new Integer("12");
     
  • 通常の文字列(String)からのインスタンス生成処理
  •      Integer integer = null;
     
         Class createClass = null;
         Class paramClass = null;
     
         //クラスローダを取得する
         Thread t = Thread.currentThread();
         ClassLoader cl = t.getContextClassLoader();
     
         try {
     
             //生成するクラスのClassオブジェクトを取得
             createClass = cl.loadClass("java.lang.Integer");
             //コンストラクタの引数となるクラスのClassオブジェクトを取得
             paramClass = cl.loadClass("java.lang.String");
     
         } catch(ClassNotFoundException e) {
             //クラスファイルが見つからなかった場合。
         }
     
         try {
     
             //Constructorオブジェクトを取得
             Constructor constructor =
                 classObject.getConstructor(new Class[]{paramClassObject});
     
         } catch(NoSuchMethodException e) {
             //指定された引数を定義したコンストラクタが無かった場合
         } catch(SecurityException e) {
             //情報へのアクセスが拒否された場合
         }
     
         try {
     
             //インスタンスの生成
             integer = constructor.newInstance(new Object{"12"});
     
         } catch (IllegalArgumentException e) {
             //不正な引数が渡された場合
         } catch (InstantiationException e) {
             //抽象クラスだった場合
         } catch (IllegalAccessException e) {
             //コンストラクタにアクセス出来なかった場合
         } catch (InvocationTargetException e) {
             //コンストラクタが例外をスローした場合
         }
     
     
  • このクラスを使用した場合のインスタンス生成処理
  •      Integer integer = null;
     
         try {
             integer = (Integer) ClassUtil.create(
                 "java.lang.Integer", new Object[] {"12"});
         } catch(ClassLoadException e) {
             //インスタンス生成時に例外が発生した場合
         }
     

    関連項目:
    ClassLoadException

    コンストラクタの概要
    ClassUtil()
               
     
    メソッドの概要
    static java.lang.Object create(java.lang.String className)
              生成するオブジェクトのクラス名を元にインスタンスを生成します。
    static java.lang.Object create(java.lang.String className, java.lang.Object[] constructorParameter)
              生成するオブジェクトのクラス名を元にインスタンスを生成します。
     
    クラス java.lang.Object から継承されたメソッド
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    コンストラクタの詳細

    ClassUtil

    public ClassUtil()
    メソッドの詳細

    create

    public static java.lang.Object create(java.lang.String className)
                                   throws ClassLoadException
    生成するオブジェクトのクラス名を元にインスタンスを生成します。 クラス名が null で渡された場合、 NullPointerException がスローされます。

    パラメータ:
    className - 生成するオブジェクトのクラス名
    戻り値:
    生成したインスタンス
    例外:
    ClassLoadException - インスタンス生成時に発生した例外をラップした例外

    create

    public static java.lang.Object create(java.lang.String className,
                                          java.lang.Object[] constructorParameter)
                                   throws ClassLoadException
    生成するオブジェクトのクラス名を元にインスタンスを生成します。 クラス名が null で渡された場合、 NullPointerException がスローされます。

    パラメータ:
    className - 生成するオブジェクトのクラス名
    constructorParameter - 生成するオブジェクトのコンストラクタのパラメータ
    (注:)このパラメータは生成するオブジェクトの引数の順番と対応する必要があります。
    戻り値:
    生成したインスタンス
    例外:
    ClassLoadException - インスタンス生成時に発生した例外をラップした例外