Você pode escrever diretamente a matriz no Java moderno, sem um inicializador. Seu exemplo agora é válido. Geralmente, é melhor nomear o parâmetro de qualquer maneira.
String[] array = {"blah", "hey", "yo"};
ou
int[] array = {1, 2, 3};
Se você precisar fazer a linha, precisará declarar o tipo:
functionCall(new String[]{"blah", "hey", "yo"});
ou use varargs (argumentos variáveis)
void functionCall(String...stringArray) {
// Becomes a String[] containing any number of items or empty
}
functionCall("blah", "hey", "yo");
Espero que os desenvolvedores de Java permitam a inicialização implícita no futuro
Atualização: Resposta do Kotlin
Kotlin tornou muito mais fácil trabalhar com matrizes ! Para a maioria dos tipos, basta usar arrayOf
e isso determinará implicitamente o tipo. Não passe nada para deixá-los vazios.
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
Primitivas têm funções utilitárias. Não passe nada para deixá-los vazios.
intArrayOf(1, 2, 3)
charArrayOf()
booleanArrayOf()
longArrayOf()
shortArrayOf()
byteArrayOf()
Se você já possui um Collection
e deseja convertê-lo em um array embutido, basta usar:
collection.toTypedArray()
Se você precisar coagir um tipo de matriz, use:
array.toIntArray()
array.toLongArray()
array.toCharArray()
...