android-studio - 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) {
...
}
}
解决方案
在代码 Aval volumeDownReceiver = object : BroadcastReceiver()
中是指创建一个继承自 type 的匿名类的对象BroadcastReceiver
。
在代码 Bval volumeDownReceiver = BroadcastReceiver()
中尝试实例化一个抽象类的新实例,这就是它失败的原因。
编辑:文档链接:https ://kotlinlang.org/docs/reference/object-declarations.html#object-expressions
推荐阅读
- javascript - 如果只返回一个对象,API 调用在 TypeScript 上不起作用
- javascript - 我在 JS 上训练神经网络失败
- c# - iTextSharp - 从 PictureBox 控件中获取图像并将其插入 PDF 文件
- c# - c# - 基于参数类型的不同函数覆盖
- paypal - 用户授权 PayPal 付款后添加运费
- python - Python Pony Orm 测试表是否为空
- javascript - 如何合并外部 JavaScript 文件
- dart - Flutter中如何实现Dropdown的这种设计
- security - 是否可以以纯文本形式拦截安全请求的有效负载?
- sql - 用于删除所有空格和数字的正则表达式