use*_*133 2 java dictionary variadic-functions
用普通数组做这样的事情:
public class TestVarArgs {
public static void main(String[] args) {
int[] array = new int[4];
for (int i = 0; i < array.length; i++) {
System.out.println(i);
}
testThis(array);
}
public static void testThis(int... args) {
for (int i = 0; i < args.length; i++) {
System.out.println(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我怎样才能用地图做到这一点?
我想将映射传递给接收可变参数对的方法。
将 Map 传递给 Entry.Map 的可变参数不起作用。
Java varargs 相当于数组,编译器支持在调用方法时在幕后创建数组。
如果你的方法需要,说,
void myMethod(Map.Entry<String,String>>... args)
Run Code Online (Sandbox Code Playgroud)
它与
void myMethod(Map.Entry<String,String>>[] args)
Run Code Online (Sandbox Code Playgroud)
所以你可以通过插入到数组的转换来调用它,如下所示:
Map<String,String> myMap = ...
...
myMethod((Entry<String,String>[])myMap.entrySet().toArray(new Map.Entry[myMap.size()]));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3134 次 |
| 最近记录: |