Kotlin:'exoPlayer'的类型与重写的var-property的类型不匹配public abstract var exoPlayer:ExoPlayer? 定义在

我不确定我理解这里发生了什么。 请有人解释一下吗?


我得到以下错误: Type of 'exoPlayer' doesn't match the type of the overridden var-property 'public abstract var exoPlayer: ExoPlayer? defined in... Type of 'exoPlayer' doesn't match the type of the overridden var-property 'public abstract var exoPlayer: ExoPlayer? defined in...

当我编译时:

 class LocalPlayback(context: Context, override var exoPlayer: SimpleExoPlayer?) : Playback { private val context: Context //... other stuff... } 

LocalPlayback扩展播放:

 interface Playback { var exoPlayer: ExoPlayer? //... other stuff... } 

SimpleExoPlayer实现了ExoPlayer接口。

你需要在接口中声明你的exoPlayer变量为val,一切都会好的。

 interface Playback { val exoPlayer: ExoPlayer? //... other stuff... } 

我举了一个例子来测试:

  interface Playback { val exoPlayer: ExoPlayer } class LocalPlayback(override var exoPlayer: SimpleExoPlayer) : Playback open class ExoPlayer class SimpleExoPlayer : ExoPlayer() 

它编译得很好。 也许别人可以帮我们解释。