在运行时创建的varargs参数列表

时间:2012-01-03 18:35:17

标签: java variadic-functions

public static void method(Set<?>... sets){}

根据程序流程,使用两组或三组或更多组调用上述方法。 (在编译时不知道)。

有没有办法“动态”构建参数列表? sets 的类型为 Set&lt; ?&gt; []

以下是富有成效:

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

(方法将varargs识别为一组 - >无解决方案)

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

返回

"Cannot create generic array of HashSet<Integer>" 

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

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