Como criar uma instância de uma interface anônima em Kotlin?
Olá a todos! Comecei a aprender Kotlin depois de Java e me deparei com um problema. Em Java, eu costumava usar classes anônimas para interfaces, por exemplo, para handlers de clique ou listeners. Aqui está como eu fazia em Java:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Clicked!");
}
});
Agora estou tentando fazer o mesmo em Kotlin, mas não estou conseguindo. Tenho uma interface simples:
interface ClickListener {
fun onClick()
}
Quero criar uma instância dessa interface diretamente no código, sem criar uma classe separada. Em Java era simples: `new ClickListener() { ... }`. Mas em Kotlin, estou tentando diferentes opções e nenhuma funciona:
// Opção 1 - não compila
val listener = ClickListener() {
println("Clicked!")
}
// Opção 2 - também erro
val listener = object : ClickListener {
println("Clicked!")
}