簡體   English   中英

從java中的類對象構造類實例

[英]Construct class instance from class object in java

我需要從類對象數組創建一個類的新實例,如下所示:

static Class[] spells = {Fireball.class, Iceball.class};

因此,當我想打電話給火球時,我應該可以做類似的事情

Spell Currentspell = new spells[0](posx, posy);

火球和冰球是順便說一下兒童類的法術。

我該怎么做呢?

謝謝你的問候。

Constructor constructor = spells[0].getConstructor(int.class, int.class);
Spell Currentspell = (Spell)constructor.newInstance(posx, posy);

您需要通過反射調用類的相應構造函數。

請參閱http://java.sun.com/developer/technicalArticles/ALT/Reflection/上的“創建新對象”部分。

您使用getConstructor()方法獲取所需的特定構造函數,然后在構造函數對象上調用newInstance()

好吧,首先,您需要縮小可以存儲在數組中的類的類型。 其次,您的實例化代碼已關閉。 沒有進入這個是實現這一目標的最佳方法,這里有一些(更好的)代碼:

static Class<Spell>[] spells = new Class<Spell>[] { Fireball.class, Iceball.class };
Spell currentSpell = spells[someIndex].newInstance();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM