【发布时间】:2011-08-30 05:08:45
【问题描述】:
在 PHP 中,您可以执行以下操作:
method(array("a", "b"));
你能在 Java 中初始化一个 String 数组作为方法调用中的参数吗,比如 tihs:
method(new String[] = {"a", "b"});
谢谢!
【问题讨论】:
标签: java arrays string methods
在 PHP 中,您可以执行以下操作:
method(array("a", "b"));
你能在 Java 中初始化一个 String 数组作为方法调用中的参数吗,比如 tihs:
method(new String[] = {"a", "b"});
谢谢!
【问题讨论】:
标签: java arrays string methods
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**
}
}
【讨论】:
@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"));
}
}
【讨论】:
Java 有可变参数方法:
public void foo(String ... args){
for(String arg : args){
// do something
}
}
您可以使用零到 n 个参数调用此类方法,编译器会根据参数创建一个数组,例如该方法等价于这个签名:
public void foo(String[] args)
【讨论】:
否
但是我们有匿名类。
foo(new Runnable(){public void run(){}});
【讨论】: