Можете ли вы в Java инициализировать массив String в качестве аргумента в вызове метода, что-то вроде tihs:
method(new String[] = {"a", "b"});
Спасибо!
Ответ 1
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**
}
}
Ответ 2
@Hovercraft ответ показывает, как создать массив inline в 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"));
}
}
Ответ 3
Java имеет методы varargs:
public void foo(String ... args){
for(String arg : args){
// do something
}
}
Вы можете вызвать такой метод с параметрами от нуля до n, компилятор создает массив из параметров, например. метод эквивалентен этой Подписи: