Como traduzir métodos estáticos de Java para Kotlin? (equivalente a static)
Olá a todos! Estou migrando de Java para Kotlin e me deparei com um problema. Em Java, costumo usar métodos estáticos para classes utilitárias, por exemplo, para trabalhar com datas ou validação de strings. Aqui está um 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");
}
```
Estou tentando migrar isso para Kotlin, mas a palavra-chave `static` não existe em Kotlin. Tentei usar `companion object`, mas parece meio verboso. Além disso, ouvi falar sobre "companion objects" e "top-level functions", mas não entendo completamente as diferenças e quando usar cada um.
Por favor, me ajudem.