Thursday, September 24, 2015

ローカルクラスのパス・・・

前提環境:Android


ローカルクラスを作ってClass.forName()でそのクラスを呼び出そうと思いましたがうまくいきませんでした。
クラスの関係はこのようになっています。
WordGeneratorはpublic staticの修飾子を持ってはいますが、れっきとしたActorのローカルクラス。
Actor
└WordGenerator (Local class with "public static" modifier)

最初に試したコードは下記です。
            getBlueprintManager()
                    .add((Class)Class.forName("org.tapchain.core.Actor.WordGenerator"), "A", false)


java.lang.ClassNotFoundExceptionが出てきてうまくいきません。

でもこんなページがありました。
同じやん?
http://stackoverflow.com/questions/18291080/class-forname-android-noclassdeffounderror-classnotfoundexception

もしかして・・・

そして、うまくいったあコードは下記です。
            getBlueprintManager()
                    .add((Class)Class.forName("org.tapchain.core.Actor$WordGenerator"), "A", false)

"$"で表すのですね。勉強になりました。