如何在 Kotlin 中定义实现接口的变量?
How to define a variable which implement the interface in Kotlin?
我希望定义一个实现接口MediaRecorder.OnInfoListener
的变量mAction
。
但是代码 A 不正确,我该如何解决?
代码A
val mAction: MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
新增内容:
代码B
val mAction = object: MediaRecorder.OnInfoListener{
override fun onInfo(mr: MediaRecorder?, what: Int, extra: Int) {
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
}
}
}
val mAction = MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
你可以通过这样做来实现这个
您只是缺少 =
而不是 :
。
val mAction = MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
您不能在没有 =
的情况下定义 属性,除非您正在定义自定义 getter 或使用 属性 委托。
我希望定义一个实现接口MediaRecorder.OnInfoListener
的变量mAction
。
但是代码 A 不正确,我该如何解决?
代码A
val mAction: MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
新增内容:
代码B
val mAction = object: MediaRecorder.OnInfoListener{
override fun onInfo(mr: MediaRecorder?, what: Int, extra: Int) {
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
}
}
}
val mAction = MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
你可以通过这样做来实现这个
您只是缺少 =
而不是 :
。
val mAction = MediaRecorder.OnInfoListener{
mr, what, extra ->
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
//ToDo
}
}
您不能在没有 =
的情况下定义 属性,除非您正在定义自定义 getter 或使用 属性 委托。