尋找可以在編譯時不知道名稱的情況下定義類的最佳方式。在PHP中,這樣做的步驟如下:在Java中動態加載類Android
$className = 'testclass';
$myClass = new $className();
相比之下,已經在Java中這麼做了。我知道它是ClassLoader,但我不確定Android是否也這樣做。我會問一個特定的代碼,甚至提示我如何做到這一點。
問候。
尋找可以在編譯時不知道名稱的情況下定義類的最佳方式。在PHP中,這樣做的步驟如下:在Java中動態加載類Android
$className = 'testclass';
$myClass = new $className();
相比之下,已經在Java中這麼做了。我知道它是ClassLoader,但我不確定Android是否也這樣做。我會問一個特定的代碼,甚至提示我如何做到這一點。
問候。
什麼您正在尋找在Java中被稱爲Reflection
:http://developer.android.com/reference/java/lang/reflect/package-summary.html
請注意,這是不可能列出在使用反射,雖然有一定包中的類。
非常感謝你! – Jake
很高興我能幫到你。 –
您可以通過Class.forName加載現有的類;你的類也可以有一個靜態初始化程序static { /* your init code */ }
,這樣它可以在加載類時運行。
還要注意,所有JDBC驅動程序通常都是以這種方式加載的。
**爲什麼**你會做這樣的事情? –
定義一個類或加載一個現有的類? – robermann
@MarioStoilov我想到了一個簡單的插件系統,它將在應用程序啓動時加載。但是,插件可以動態添加,所以我不知道他們的名字。 – Jake