Puede escribir directamente la matriz en Java moderno, sin un inicializador. Su ejemplo ahora es válido. En general, es mejor nombrar el parámetro de todos modos.
String[] array = {"blah", "hey", "yo"};
o
int[] array = {1, 2, 3};
Si tiene que estar en línea, deberá declarar el tipo:
functionCall(new String[]{"blah", "hey", "yo"});
o usar varargs (argumentos variables)
void functionCall(String...stringArray) {
// Becomes a String[] containing any number of items or empty
}
functionCall("blah", "hey", "yo");
Esperemos que los desarrolladores de Java permitan la inicialización implícita en el futuro.
Actualización: Respuesta de Kotlin
¡Kotlin ha hecho que trabajar con matrices sea mucho más fácil! Para la mayoría de los tipos, solo use arrayOfy determinará implícitamente el tipo. No pase nada para dejarlos vacíos.
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
Las primitivas tienen funciones de utilidad. No pase nada para dejarlos vacíos.
intArrayOf(1, 2, 3)
charArrayOf()
booleanArrayOf()
longArrayOf()
shortArrayOf()
byteArrayOf()
Si ya tiene un Collectiony desea convertirlo en una matriz en línea, simplemente use:
collection.toTypedArray()
Si necesita forzar un tipo de matriz, use:
array.toIntArray()
array.toLongArray()
array.toCharArray()
...