Подтвердить что ты не робот

Как создать экземпляр анонимного класса, который реализует интерфейс в Kotlin

В Java экземпляр объекта интерфейса так же просто, как new Interface()... и переопределяет все необходимые функции, как показано ниже, на AnimationListener

private void doingSomething(Context context) {
    Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_in);
    animation.setAnimationListener(new Animation.AnimationListener() {
        // All the other override functions
    });
}

Однако, в Котлине, когда мы вводим

private fun doingSomething(context: Context) {
    val animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
    animation.setAnimationListener(Animation.AnimationListener(){
        // All the other override functions
    })
}

Ошибки в жалобах не разрешены Ссылки AnimationListener.

4b9b3361

Ответ 1

Как объяснено в документации:

animation.setAnimationListener(object : Animation.AnimationListener {
    // All the other override functions
})

Ответ 2

По-видимому, последний способ (используя Kotlin 1.0.5) сделать это теперь без круглых скобок, если нет никакого пустого конструктора для интерфейса.

animation.setAnimationListener(object : Animation.AnimationListener {
    // All the other override functions
})