我有一个方法
private void show(Object[] arr) {
for (Object o : arr) {
System.out.println(o);
}
}
我想将此方法称为
// belows are not valid but I'd like to achieve
show({1,2,3});
show(new String["a","b","c"])
但我不想创建一个数组来调用此方法。 (请不要建议更改我的 show 方法的签名。这只是一个示例。我使用的实际方法来自第三方库。)
如何通过实用程序类或其他任何方法实现此目的?
答案 0 :(得分:3)
创建varargs包装器方法:
private void myShow(Object... arr){
show(arr);
}
// No change to your existing 3rd party method:
private void show(Object[] arr) {
for (Object o : arr) {
System.out.println(o);
}
}
然后您可以像这样调用包装器方法:
myShow("a","b","c");
myShow(1,2,3,4);
希望这有帮助!
答案 1 :(得分:2)
您可以使用评论中提到的varargs或以这种方式声明数组:
show(new String[] {"a","b","c"})
答案 2 :(得分:1)
您正在寻找的不是将数组传递给方法而不声明它的方法,您正在寻找“数组的单行数据实例”......或者通过真实名称“在线声明”
show(new Object[]{"a","b","c"});
答案 3 :(得分:0)
您可以使用varargs完成此操作。对函数进行简单编辑不仅可以允许一组对象,还可以让您完成所需的任务。
而不是使用Object[]
使用Object...