Que objetos existem em Kotlin e como são compilados?
sobes.tech IA
Resposta da IA
Os objetos em Kotlin são usados para criar singleton. São declarados com a palavra-chave object.
object Singleton {
fun doSomething() {
println("Olá do singleton!")
}
}
Ao compilar, o objeto Kotlin Singleton é transformado numa classe Java Singleton com um campo estático privado INSTANCE e um bloco de inicialização estático.
// Exemplo de código Java gerado
public final class Singleton {
public static final Singleton INSTANCE; // Campo estático para a única instância
public final void doSomething() { // Método do objeto
System.out.println("Olá do singleton!");
}
private Singleton() { // Construtor privado para evitar criar outras instâncias
}
static { // Bloco de inicialização estático
INSTANCE = new Singleton(); // Criação da única instância
}
}
Ao chamar o método do objeto Singleton.doSomething() em Kotlin, o compilador gera uma chamada ao método estático Singleton.INSTANCE.doSomething() em Java.
Para além de objetos normais, em Kotlin existem:
-
Objeto companheiro (
companion object): Usado para definir membros estáticos dentro de uma classe. Acesso através do nome da classe. Cada classe pode ter no máximo um objeto companheiro.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Compila-se em membros estáticos da classe em Java.
-
Expressão de objeto (
object expression): Usada para criar objetos anónimos (semelhante às classes anónimas em Java).val listener = object : MyInterface { override fun onClick() { println("Clicado!") } }Compila-se em uma classe anónima em Java.