在Kotlin中是否可以创建一个实现某个接口的匿名类,并且只实现您需要的功能?例如,我想创建一个实现AnimationListener
有3个方法的类:
如果我只想使用onAnimationEnd
回调,我可以这样做吗?
object : AnimationListener {
override fun onAnimationEnd() {
//my implementation
}
}
Run Code Online (Sandbox Code Playgroud)
我在Java中完成此操作的方法是创建一个实现接口的类,只需创建该类的匿名类并覆盖我需要的方法.我希望Kotlin有一个更好,更简洁的方法.
我不认为Kotlin在这方面与Java有什么不同.但是,您可以创建自己的接口,这些接口具有您不需要的方法的默认no-op实现:
interface AnimationEndListener : AnimationListener {
fun onAnimationStart() {}
fun onAnimationRepeat() {}
}
Run Code Online (Sandbox Code Playgroud)
然后实际的具体实现将扩展AnimationEndListener
并仅覆盖所需的内容.
归档时间: |
|
查看次数: |
1529 次 |
最近记录: |