Como substituir métodos estáticos do Java em Kotlin: guia completo
Olá! Comecei a estudar Kotlin recentemente depois de alguns anos trabalhando com Java, e fiquei confuso. Em Java, eu costumava usar métodos estáticos para criar classes utilitárias, fábricas ou constantes. Por exemplo:
```java
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.trim().isEmpty();
}
public static final String APP_NAME = "MyApp";
}
```
Em Kotlin, não posso simplesmente escrever `static`. Quando tentei:
```kotlin
class StringUtils {
static fun isEmpty(str: String?): Boolean { // Erro!
return str == null || str.trim().isEmpty()
}
}
```
O compilador dá erro: "Modifier 'static' is not applicable inside 'top level'". Pesquisei no Google e encontrei sobre `companion object`, mas não entendi completamente como funciona. Por exemplo, quero:
1. Criar uma classe utilitária com métodos que possam ser chamados sem criar uma instância (como `Math.abs()`).
2. Definir constantes acessíveis de qualquer lugar.