Avatar ·

如何在 Kotlin 中创建匿名接口实例?

大家好!我刚开始从 Java 学习 Kotlin,遇到了一个问题。在 Java 中,我经常使用匿名类来实现接口,例如用于点击处理器或监听器。以下是我在 Java 中的做法:
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println("Clicked!");
    }
});
现在我尝试在 Kotlin 中做同样的事情,但没成功。我有一个简单的 interface:
interface ClickListener {
    fun onClick()
}
我想在代码中直接创建这个 interface 的实例,而不创建单独的类。在 Java 中很简单:`new ClickListener() { ... }`。但在 Kotlin 中,我尝试了不同的方法,没有一个能工作:
// 方法 1 - 无法编译
val listener = ClickListener() {
    println("Clicked!")
}

// 方法 2 - 也是错误
val listener = object : ClickListener {
    println("Clicked!")
}