Avatar ·

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?