Kotlin:如何在一行代码中实例化一个class并实现一个接口?
Kotlin: How to instantiate a class and implement an interface in a single line of code?
我正在尝试做类似的事情:
val telephonyCallback = object: TelephonyCallback() implements TelephonyCallback.ServiceStateListener {
override fun onServiceStateChanged(serviceState: ServiceState) {
}
}
Kotlin 可以吗?
您可以提供多个以逗号分隔的超类型:
val telephonyCallback = object: TelephonyCallback(), TelephonyCallback.ServiceStateListener {}
请注意,它并不像您预期的那样工作。对象表达式创建匿名 classes,这意味着没有明确的 class extends/implements 两个超类型。在某些情况下,您可以使用 telephonyCallback
作为两个超类型(例如,如果它是局部变量),在其他情况下,您只能保留其超类型之一,并且必须明确选择它(属性,函数参数).
如果您希望能够在任何地方传递这样的 telephonyCallback
变量,您必须为其创建一个常规 class,以便在代码中引用它。
我正在尝试做类似的事情:
val telephonyCallback = object: TelephonyCallback() implements TelephonyCallback.ServiceStateListener {
override fun onServiceStateChanged(serviceState: ServiceState) {
}
}
Kotlin 可以吗?
您可以提供多个以逗号分隔的超类型:
val telephonyCallback = object: TelephonyCallback(), TelephonyCallback.ServiceStateListener {}
请注意,它并不像您预期的那样工作。对象表达式创建匿名 classes,这意味着没有明确的 class extends/implements 两个超类型。在某些情况下,您可以使用 telephonyCallback
作为两个超类型(例如,如果它是局部变量),在其他情况下,您只能保留其超类型之一,并且必须明确选择它(属性,函数参数).
如果您希望能够在任何地方传递这样的 telephonyCallback
变量,您必须为其创建一个常规 class,以便在代码中引用它。