È possibile scrivere direttamente l'array nella moderna Java, senza un inizializzatore. Il tuo esempio è ora valido. In genere è meglio nominare il parametro comunque.
String[] array = {"blah", "hey", "yo"};
o
int[] array = {1, 2, 3};
Se si dispone di linea, sarà necessario dichiarare il tipo:
functionCall(new String[]{"blah", "hey", "yo"});
o usa varargs (argomenti variabili)
void functionCall(String...stringArray) {
// Becomes a String[] containing any number of items or empty
}
functionCall("blah", "hey", "yo");
Speriamo che gli sviluppatori Java consentano l'inizializzazione implicita in futuro
Aggiornamento: risposta di Kotlin
Kotlin ha reso molto più semplice lavorare con gli array ! Per la maggior parte dei tipi, basta usare arrayOfe determinerà implicitamente il tipo. Non passare nulla per lasciarli vuoti.
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
I primitivi hanno funzioni di utilità. Non passare nulla per lasciarli vuoti.
intArrayOf(1, 2, 3)
charArrayOf()
booleanArrayOf()
longArrayOf()
shortArrayOf()
byteArrayOf()
Se hai già un Collectione desideri convertirlo in un array in linea, usa semplicemente:
collection.toTypedArray()
Se è necessario forzare un tipo di array, utilizzare:
array.toIntArray()
array.toLongArray()
array.toCharArray()
...