[英]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.