首页 > 解决方案 > Kotlin 中的关键字 object 是什么意思?

问题描述

代码 A 来自CameraXBasic

我无法完全理解代码 p rivate val volumeDownReceiver = object : BroadcastReceiver()

我认为代码 B 会很好地工作,但实际上它失败了。

Kotlin 中的关键字 object 是什么意思?

代码 A

private val volumeDownReceiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        ...
    }
}

代码 B

private val volumeDownReceiver = BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        ...
    }
}

标签: android-studiokotlin

解决方案


在代码 Aval volumeDownReceiver = object : BroadcastReceiver()中是指创建一个继承自 type 的匿名类的对象BroadcastReceiver

在代码 Bval volumeDownReceiver = BroadcastReceiver()中尝试实例化一个抽象类的新实例,这就是它失败的原因。

编辑:文档链接:https ://kotlinlang.org/docs/reference/object-declarations.html#object-expressions


推荐阅读