从匿名类的接口实现只有一个方法
Kotlin有可能创建一个实现某个接口的匿名类,只实现你需要的功能吗? 例如,我想创建一个实现AnimationListener
的类,它有3个方法:
- onAnimationStart
- onAnimationEnd
- onAnimationRepeat
如果我只想使用onAnimationEnd
回调,我可以做这样的事情吗?
object : AnimationListener { override fun onAnimationEnd() { //my implementation } }
我在Java中这样做的方式是创建一个实现接口的类,只需创建该类的匿名类并覆盖我需要的方法。 我希望Kotlin有一个更好的,不太详细的方法。
我不认为在这方面Kotlin和Java有什么不同。 但是,您可以创建自己的接口,该接口具有您不需要的方法的默认无操作实现:
interface AnimationEndListener : AnimationListener { fun onAnimationStart() {} fun onAnimationRepeat() {} }
然后,实际的具体实现将扩展AnimationEndListener
并仅覆盖需要的内容。