2015-05-20 85 views
0

我有一個方法(代表一組對象),它接收一個Class對象作爲參數,並且我需要找到集合中的所有對象這個Class對象作爲它們的元對象。從它的元對象中創建一個對象變量

問題是,我需要返回他們作爲他們的類型的數組,我不知道如何獲取對象類型。

因此,換句話說,我需要建立一個數組,他的類型取決於類對象上,例如:

public Object[] getAllFromType(Class meta){ 
    Object[] temp = new meta.getDynamicType[fullCells]; 

    ... 
    ... 
    ... 
    return temp; 
} 

這可能嗎?

謝謝。

+0

我不知道我明白'meta'是什麼,你會怎麼稱呼它。你能發佈一些更多的信息嗎?您可能可以在這裏使用泛型,具體取決於您正在嘗試做什麼。 – Thomas

+0

您是否還可以澄清「集合中具有此Class對象作爲其元對象的所有對象」?你是指某個集合中給定類的所有實例,例如'fullCells'內的所有'String'實例? – Thomas

回答

1

那麼,你已經證明你打算把它作爲返回反正Object[],這樣你就不會得到一個編譯時好處在這裏,但你可以輕鬆地創建正確類型的數組足夠:

Object[] array = (Object[]) Array.newInstance(meta, fullCells); 

注意,投給Object[]是必需的,因爲Array.newInstance回報Object - 中投將用於int[]例如失敗,因爲int[]不是Object[]。但是,如果數組元素類型是任何類或接口類型,它將會工作。

相關問題