我有一个方法 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/