2013-04-21 31 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

相关问题