Java 如何通过内联声明传递数组参数?

Java 如何通过内联声明传递数组参数?,java,Java,我有一个方法 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"]) 我想把这个方法称为 private void show(Object[] arr) { for (Obje

我有一个方法

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"])
我想把这个方法称为

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方法的签名。这只是一个示例。我使用的实际方法来自第三方库。)

如何通过实用程序类或其他方法实现这一点?

创建包装器方法:

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);


希望这有帮助

您要寻找的不是一种在不声明的情况下将数组传递给方法的方法,而是一种“数组的单行数据安装”。。。或者用真名“在线申报”


您可以使用注释中提到的varargs,也可以通过以下方式声明数组:

show(new String[] {"a","b","c"})

您可以通过使用varargs来实现这一点。对函数进行简单的编辑不仅可以创建一个对象数组,还可以完成所需的任务


不要使用
Object[]
使用
Object…

使用varargs:@rahulroc,我无法更改我的显示方法参数。
show(Object…arr)
?然后你可以说
show(1,2,3)
show(“a”,“b”,“c”)
。。。etc@Cataclysm如果无法更改
show
方法,则必须声明一个变量
show(新整数[]{1,2,3})
@MadProgrammer抱歉。。我无法更改我的方法签名,因为我使用的实际方法来自第三方库。By OP:(请不要建议更改我的show方法的签名。这只是一个示例。)这不会更改签名。vararg仍然是一个数组。@Cataclysm,它不会改变签名。args仍然是数组类型。我无法更改我的方法签名,因为我使用的实际方法来自第三方libIt确实更改了签名,如果不修改该方法,您不能对其使用varargs,因此OP可以使用
show(1,2,3,4)
及其当前实现:POK。。。我拿到了
在线申报
。我不知道怎么称呼这个:)