Como chamar funções de extensão do Kotlin a partir do Java e por que elas não são visíveis?
Olá a todos! Sou novo no Kotlin, migrando do Java. Escrevi algumas funções de extensão para a classe String em um arquivo separado Utils.kt:
```kotlin
// Utils.kt
package com.example.utils
fun String.isEmail(): Boolean = this.contains("@")
fun String.capitalizeWords(): String = this.split(" ").joinToString(" ") { it.capitalize() }
```
No Kotlin tudo funciona perfeitamente, mas quando tento chamar essas funções a partir do código Java, a IDE as sublinha em vermelho:
```java
// Main.java
import com.example.utils.UtilsKt; // import apareceu, mas...
public class Main {
public static void main(String[] args) {
String email = "test@example.com";
// Erro: Cannot resolve method 'isEmail'
System.out.println(email.isEmail());
// E assim também não funciona:
// System.out.println(UtilsKt.isEmail(email));
}
}
```
Li que o Kotlin compila funções de extensão em métodos estáticos, mas por que elas não são visíveis como métodos comuns da classe String?
No answers yet.
Faça login para deixar uma resposta