2013-04-21 98 views
1

我有一個方法,需要返回列表<'MyClass> []並需要設置一個局部變量來這樣做,但我有初始化的麻煩。如何初始化一個特定類型的列表數組?

我想:

List<MyClass>[] lists = new List<MyClass>[5]; 

這給了我的「無法創建列表的通用陣列」

錯誤我試圖投射對象的數組:

List<MyClass>[] lists = (List<MyClass>[]) new Object[5]; 

這給了我在運行時發生了鑄件錯誤。

我也試過:

List<MyClass>[] lists = (List<MyClass>[]) new List[5]; 

這就造成了一個空指針異常。

任何人都知道需要做些什麼才能使其發揮作用?

謝謝。

回答

3

你聲明的列表,像這樣(例如ArrayList中):

List<MyClass> list = new ArrayList<MyClass>(); 

要創建這個列表中,您做的數組:

List<?>[] listArray = new List<?>[]{list}; 

這將會把一個數組列表。我假設這就是你想要的,而不僅僅是列表中的項目。

+0

這確實得到它的工作。謝謝。你知道有什麼方法需要在將每個列表添加到數組之前單獨創建每個列表嗎? – JZachow 2013-04-21 02:06:00

+1

如何使用'Arrays.asList(...)'內聯來避免中間變量? – 2013-04-21 02:06:58

+1

老實說,沒有。我通常不會將我的列表放入數組中。 – 2013-04-21 02:07:24

相關問題