Java, наиболее эффективный способ передать массив String в качестве параметра метода

У меня есть следующий код

String[] args = {"a", "b", "c"};
method(args);


private void method(String[] args){
    return args;
}

Почему я не могу сделать следующее без ошибок?

method({"a", "b", "c"});

Этот код является примером только для доказательства точки, а не фактических методов, которые я использую. Я бы хотел сделать второй метод, чтобы очистить мой код и не объявлять десяток различных массивов, когда я использую их только один раз, чтобы перейти к моему методу.

Сердце вопроса - это самый эффективный способ передать массив строк в качестве параметра параметра.

Ответ 1

Я подозреваю, что вы хотите использовать varargs. Вам даже не нужно создавать массив для отправки аргументов переменной длины.

String[] strings = method("a", "b", "c");

private String[] method(String... args){
    return args;
}

или

String[] strings = array("a", "b", "c");

private <T> T[] array(T... args){
    return args;
}

или если вы хотите конденсироваться далее

String[] strings = array("a, b, c");

private String[] array(String args){
    return args.split(", ?");
}

Ответ 2

попробовать

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

таким образом система знает, что это новый строковый массив.

java не похож на php;)

Ответ 3

Если вы используете:

method({ "a", "b", "c"});

тогда java не знает, хотите ли вы массив String или Object. Вы можете явно указать java, какой тип массива выглядит следующим образом:

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

Таким образом, Java может сказать, что вы имеете в виду массив String.

Ответ 4

Вам не нужна именованная ссылка на массив. Вы можете инициализировать и передать анонимный массив следующим образом:

method (new String[]{"a", "b"});