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