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.