¿Cómo traducir métodos estáticos de Java a Kotlin? (equivalente de static)
¡Hola a todos! Estoy migrando de Java a Kotlin y me encontré con un problema. En Java uso a menudo métodos estáticos para clases de utilidad, por ejemplo, para trabajar con fechas o validar cadenas. Aquí hay un código Java típico:
```java
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.trim().isEmpty();
}
public static String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
}
// Uso:
if (StringUtils.isEmpty(userInput)) {
System.out.println("Input is empty");
}
```
Intento trasladar esto a Kotlin, pero la palabra clave `static` no existe en Kotlin. Probé simplemente escribir `companion object`, pero se ve algo engorroso. Además, he oído sobre "objetos acompañantes" y "funciones de nivel superior", pero no entiendo del todo en qué se diferencian y cuándo usar cada uno.
Por favor, indíquenme.