我有多個類都從相同的Block
類繼承,並希望基於變量值實例化其中的一個類。從列表中選擇一種類型
這裏是我做了現在:
public enum MapCases {
FLOOR (Floor.class), // These are all subclass of my Block class
WALL (Wall.class),
ROCK (Rock.class);
private Class<?> blockType;
MapCases (Class<?> pointing) {
this.block = pointing;
}
public Class<?> getType() {
return this.blockType;
}
};
後來的後來,我嘗試實例給他們一些數據:
private Block[] blocks; // Array of the mother type
...
blocks = new Block[data.length]; // data is an int array
for (int i = 0; i < data.length; i++) {
int choice = data[i];
Class<?> blockType = MapCases.values()[choice].getType();
blocks[i] = new blockType(); // blockType is of unresolved type
}
但是Eclipse顯示我的錯誤說,它不能解析blockType到一個類型(這看起來是合乎邏輯的,因爲java還不知道類型)。
我怎麼能達到我想要做的?
試試'?擴展Block'到處都有'?'。 –
我不知道這些事情是可能的。它雖然不起作用,但類型仍未解決。 – Malharhak