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 arrayOf
y 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 Collection
y 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()
...