kotlin接口支持SAM转换

定义一个kotlin接口,如下所示:

1
2
3
interface IReportPlayerEventListenerFactory {
fun getPlayerEventListener(mediaPlayer: Any?): ITVKPlayerEventListener?
}

这个接口使用的时候,是只能使用object匿名内部类的方式的,是没法使用SAM转换的:

那这个问题要怎么解决呢?
https://kotlinlang.org/docs/whatsnew14.html#sam-conversions-for-kotlin-interfaces
根据官方文档:kt1.4版本kt也支持SAM转换了:


在interface前面添加一个fun关键字即可

1
2
3
fun interface IReportPlayerEventListenerFactory {
fun getPlayerEventListener(mediaPlayer: Any?): ITVKPlayerEventListener?
}