Kotlin是否有可能创建一个实现某个接口的匿名类,并且只实现您需要的功能?例如,我想创建一个实现AnimationListener
的类,它有3个方法:
如果我只想使用onAnimationEnd
回调,我可以这样做吗?
object : AnimationListener {
override fun onAnimationEnd() {
//my implementation
}
}
我在Java中完成此操作的方法是创建一个实现接口的类,只需创建该类的匿名类并覆盖我需要的方法。 我希望Kotlin对此有一个更好,更简洁的方法。
答案 0 :(得分:7)
我不希望Kotlin在这方面有任何与Java不同的东西。但是,您可以创建自己的界面,这些界面具有您不需要的默认的无操作方法:
interface AnimationEndListener : AnimationListener {
fun onAnimationStart() {}
fun onAnimationRepeat() {}
}
然后实际的具体实施将扩展AnimationEndListener
并仅覆盖所需的内容。