Avatar ·

Cómo reemplazar métodos estáticos de Java en Kotlin: guía completa

¡Hola! Acabo de empezar a aprender Kotlin después de varios años trabajando con Java, y tengo confusión. En Java solía usar métodos estáticos para crear clases de utilidad, fábricas o constantes. Por ejemplo: ```java public class StringUtils { public static boolean isEmpty(String str) { return str == null || str.trim().isEmpty(); } public static final String APP_NAME = "MyApp"; } ``` En Kotlin no puedo simplemente escribir `static`. Cuando intenté: ```kotlin class StringUtils { static fun isEmpty(str: String?): Boolean { // ¡Error! return str == null || str.trim().isEmpty() } } ``` El compilador da un error: "Modifier 'static' is not applicable inside 'top level'". Busqué en Google y encontré sobre `companion object`, pero no entendí del todo cómo funciona. Por ejemplo, quiero: 1. Crear una clase de utilidad con métodos que se puedan llamar sin crear una instancia (como `Math.abs()`). 2. Definir constantes accesibles desde cualquier lugar.