代码A来自CameraXBasic
我不能完全理解代码private val volumeDownReceiver = object : BroadcastReceiver()。
我认为B准则会很好,但实际上失败了。
关键字对象在Kotlin中意味着什么?
码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) {
...
}
}发布于 2019-09-10 00:34:20
在代码中,val volumeDownReceiver = object : BroadcastReceiver()是指创建匿名类的对象,该对象继承自BroadcastReceiver类型。
在代码B中,val volumeDownReceiver = BroadcastReceiver()试图实例化一个抽象类的新实例,这就是它失败的原因。
编辑:链接到文档:https://kotlinlang.org/docs/reference/object-declarations.html#object-expressions
https://stackoverflow.com/questions/57862585
复制相似问题