2012-01-03 43 views
0
public static void method(Set<?>... sets){} 

根据程序流程,上述方法被调用两组或三组或更多。 (在编译时不知道)。在运行时创建的可变参数列表

有没有办法构建参数列表“即时”? 类型的集<> []

以下是卓有成效:

Set<Set<Integer>> varargs = new HashSet<Set<Integer>>(); 

(方法识别可变参数只是作为一个集合 - >无解)

Set<Integer>[] varargs = new HashSet<Integer>[2]; 

返回

"Cannot create generic array of HashSet<Integer>" 

我想构建一个参数数组,而数组大小和内容在运行时填充。

回答

3
Set<Integer>[] varargs = new HashSet[2]; 
varargs[0] = new HashSet<Integer>() ; 
+1

非常感谢!这工作 – panny 2012-01-03 19:09:04

2

我相信集的数组应该这样定义:

Set<Integer>[] varargs = new Set[2]; 
varargs[0] = new HashSet<Integer>(); 
varargs[1] = new HashSet<Integer>(); 
+0

谢谢,不知道它是如此明显! – panny 2012-01-03 19:08:43