Вы можете напрямую написать массив в современной Java без инициализатора. Ваш пример теперь действителен. Как правило, лучше всего назвать параметр в любом случае.
String[] array = {"blah", "hey", "yo"};
или
int[] array = {1, 2, 3};
Если вам нужно встроить, вам нужно объявить тип:
functionCall(new String[]{"blah", "hey", "yo"});
или используйте varargs (переменные аргументы)
void functionCall(String...stringArray) {
// Becomes a String[] containing any number of items or empty
}
functionCall("blah", "hey", "yo");
Надеемся, что разработчики Java разрешат неявную инициализацию в будущем
Обновление: Kotlin Ответ
Kotlin сделал работу с массивами намного проще! Для большинства типов просто используйте, arrayOf
и он будет неявно определять тип. Не пропустите ничего, чтобы оставить их пустыми.
arrayOf("1", "2", "3") // String
arrayOf(1, 2, 3) // Int
arrayOf(1, 2, "foo") // Any
arrayOf<Int>(1, 2, 3) // Set explict type
arrayOf<String>() // Empty String array
Примитивы имеют функции полезности. Не пропустите ничего, чтобы оставить их пустыми.
intArrayOf(1, 2, 3)
charArrayOf()
booleanArrayOf()
longArrayOf()
shortArrayOf()
byteArrayOf()
Если у вас уже есть Collection
и вы хотите преобразовать его в массив, просто используйте:
collection.toTypedArray()
Если вам нужно привести тип массива, используйте:
array.toIntArray()
array.toLongArray()
array.toCharArray()
...