我们有一个方法:
public void foo (String s1, String s2, String s3) {
...
}
并选择一个集合。也许hashmap,也许是列表,并不重要。
有没有办法将“转换”集合转换为方法参数?类似的东西:
public void foo (getParamters(map)) { ... }
是的,当然我可以做到
public void foo (map.get(0), map.get(1), map.get(3)) { ... }
但我正在考虑更自动化的东西,这可以帮助我解决更大的问题。
答案 0 :(得分:5)
您可以将Collection转换为数组并将数组传递给方法:
public void foo (String... s) {
...
}
...
String[] arr = map.keySet().toArray (new String[0]);
foo (arr);
由于您事先并不知道Collection中的元素数量,因此使用varargs声明方法比foo (String s1, String s2, String s3)
中的固定数量的参数更有意义。
答案 1 :(得分:1)
您可以使用varargs例如:
public static void main(String[] args) {
test("1", "2");
test("1", "2", "3");
}
public static void test(String ...args){
for (int i = 0; i < args.length; i++) {
//do something
}
}
答案 2 :(得分:0)
您可以使用varargs,它允许该方法接受零个或多个参数。如果我们不知道我们将在方法中传递多少参数,那么varargs是更好的方法。
<强>语法:强>
return_type method_name(data_type... variableName){
// code snippet
}
示例:
public void varargsMethod(String... values){
for(String s:values){
System.out.println(s);
}
}
正在运行example