Como converter um array Kotlin para passar para um método Java com varargs (argumentos de comprimento variável)
Olá, colegas! Sou novo em Kotlin e encontrei um problema inesperado ao chamar um método Java a partir do código Kotlin.
Eu tenho uma classe Java com um método que aceita varargs (argumentos de comprimento variável):
```java
public class Logger {
public static void log(String tag, String... messages) {
for (String msg : messages) {
System.out.println(tag + ": " + msg);
}
}
}
```
Em Kotlin, quero passar para este método um array de strings que formei antecipadamente. Mas quando escrevo:
```kotlin
val messages = arrayOf("Erro 1", "Erro 2", "Erro 3")
Logger.log("Tag", messages) // Erro de compilação!
```
Recebo um erro de compilação: *Type mismatch: inferred type is Array but String was expected*. Entendo que o problema é que Kotlin não consegue desempacotar automaticamente o array em varargs, como Java faz.
Tentei usar `*` (operador spread), mas não tenho certeza se está correto. Digam-me como converter o array corretamente.
No answers yet.
Faça login para deixar uma resposta