代码:
private val mediaPlayerListener by lazy { InnerMediaPlayerListener() }
inner class InnerMediaPlayerListener : PlayerListenerCallback {
// ...
}
kotlin版本:1.2.60
它在调试版本中运行良好,但在发行版本中抛出ClassCastException:
Caused by: java.lang.ClassCastException: xxx.xxx.FooClass$mediaPlayerListener$2 cannot be cast to kotlin.jvm.functions.Function0
然后我从发布版本中反编译.class:
final class QQMusicAudioPlayer$mediaPlayerListener$2 extends Lambda
所以问题是:
为什么QQMusicAudioPlayer$mediaPlayerListener$2
不实现Function0
而是扩展Lambda
而不是发布版本?编译器在调试和发行版本之间的行为有所不同吗?