在PHP中,您可以执行以下操作:
method(array("a", "b"));
您是否可以在Java中将String数组初始化为方法调用中的参数,如tihs:
method(new String[] = {"a", "b"});
谢谢!
答案 0 :(得分:61)
Java有一个等效的构造:
import java.util.Arrays;
public class Foo {
public void method(String[] myStrArray) {
System.out.println(Arrays.toString(myStrArray));
}
public static void main(String[] args) {
Foo foo = new Foo();
foo.method(new String[]{"hello", "goodbye"}); // **array created inline**
}
}
答案 1 :(得分:5)
@ Hovercraft的答案显示了如何在Java中内联创建数组。
通过使用实用方法(利用Java的有限类型推断)来摆脱冗余数组类型注释,可以进一步改进该解决方案。
<强>代码:强>
import java.util.Arrays;
// Utility class
class Array {
public static <A> A[] of(A ... elements) {
return elements;
}
}
// Main class
class Main {
public static void method(String[] s) {
System.out.println(Arrays.toString(s));
}
public static void main(String[] args) {
method(Array.of("a", "b", "c"));
}
}
答案 2 :(得分:4)
Java有varargs方法:
public void foo(String ... args){
for(String arg : args){
// do something
}
}
您可以使用零到n个参数调用这样的方法,编译器根据参数创建一个数组,例如:该方法等同于此签名:
public void foo(String[] args)
答案 3 :(得分:1)
否
但我们有匿名课程。
foo(new Runnable(){public void run(){}});