1. The conventional way to implement anonymous inner classes
valueAnimator.addUpdateListener(object :AnimatorUpdateListener {
override fun onAnimationUpdate(animation: ValueAnimator?) {
currentPoint = animation?.animatedValue as Point
postInvalidate()
}
})
2. Anonymous inner class of lambda expression version
valueAnimator.addUpdateListener { animation ->
currentPoint = animation?.animatedValue as Point
postInvalidate()
}