PHPでは、次のことができます。
method(array("a", "b"));
Javaで、文字列配列をメソッド呼び出しの引数として初期化できます。tihsのようなものです。
method(new String[] = {"a", "b"});
ありがとう!
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にはvarargsメソッドがあります。
public void foo(String ... args){
for(String arg : args){
// do something
}
}
ゼロからn個のパラメーターでこのようなメソッドを呼び出すことができ、コンパイラーはパラメーターから配列を作成します。メソッドはこの署名と同等です:
public void foo(String[] args)
いいえ
しかし、匿名クラスがあります。
foo(new Runnable(){public void run(){}});