Avatar ·

Cómo llamar a funciones de extensión de Kotlin desde Java y por qué no son visibles

¡Hola a todos! Soy nuevo en Kotlin, vengo de Java. Escribí un par de funciones de extensión para la clase String en un archivo 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() } ``` En Kotlin todo funciona perfectamente, pero cuando intento llamar a estas funciones desde código Java, el IDE las subraya en rojo: ```java // Main.java import com.example.utils.UtilsKt; // la importación aparece, pero... public class Main { public static void main(String[] args) { String email = "test@example.com"; // Error: Cannot resolve method 'isEmail' System.out.println(email.isEmail()); // Y esto tampoco funciona: // System.out.println(UtilsKt.isEmail(email)); } } ``` He leído que Kotlin compila las funciones de extensión en métodos estáticos, pero ¿por qué no son visibles como métodos normales de la clase String?