Avatar ·

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.