facebook twitter hatena line email

Android/クラスを動的に読み込む

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

動的にクラスを読み込む

-SampleFactory.java

try {
    // 同一ライブラリの場合
    // Class clazz = Class.forName(Sample1.class.getPackage().getName() + ".Sample1");
    // 別のライブラリの場合でもok
    Class clazz = Class.forName("jp.co.example.Sample1");
    Object worker = clazz.newInstance();
    if(worker instanceof Sample1) {
       return (Sample1)worker;
    }
} catch (Exception e) {
    ;
}

別ライブラリの場合は

以下2つを確認する

  • classがpublicになっているか
  • constructがpublicになっているか