java - java中传递参数的通用可变个数

标签 java generics

我有一个方法 findByProperties(Parameter... p);所以它可以采用任意数量的参数。但我感到困惑的是,如果我必须调用这个方法并且我不知道参数的数量,我该怎么做

假设我有一个包含参数的列表,并且每次调用该方法时列表的大小都会发生变化,那么如何将列表中的参数添加到方法调用中?

for(ArrayList<Parameter> p : list){
   findByProperties(p);  //not sure what to do here
 }

编辑:

这就是解决方案:

Parameter[] paramArray = new ArrayList<Parameter>().toArray(new Parameter[]{});
findByProperties(paramArray);

最佳答案

你可以这样做:

Parameter[] paramArray = new ArrayList<Parameter>().toArray(new Parameter[]{});
findByProperties(paramArray);

这与以下内容相同:

findProperties(param1, param2);

因为 Java 在内部将 varargs-list 转换为数组,因此您也可以传递数组。

关于java - java中传递参数的通用可变个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607642/

相关文章:

java - 列表<? super B> lsb = new ArrayList<A>(); Java中的逻辑错误?

Java:将集合类型转换为子类型

java - 获取和设置在 main 中声明的数组列表?

java - ConcurrentLinkedDeque 可以有固定大小并覆盖旧元素吗?

java - 蒙特卡罗树搜索不起作用

java - 之间的区别? Java中的(通配符)和类型参数

java - COMET/Server Push如何在Google app engine上实现?

Java 泛型 : Why does my @SuppressWarnings ("unchecked") work in this case, 而不是其他?

java - 泛型实现 Map.entrySet() 时遇到问题

javascript - 使用 Array.map (TypeScript) 返回通用数组