Создайте экземпляр абстрактного класса в Kotlin

87

Я новичок в Kotlin и пытаюсь использовать его в своем Android-проекте. У меня есть такой код:

public var oneTouchTimer: CountDownTimer = CountDownTimer(500, 100) {
    override fun onTick(l: Long) {

    }

    override fun onFinish() {

    }
}

И это вызывает ошибку:

Cannot create an instance of an abstract class.

В основном я пытаюсь создать экземпляр CountDownTimer и не могу понять, как преобразовать его в Kotlin.

Вот код на Java:

CountDownTimer oneTouchTimer = new CountDownTimer(500, 100) {
    @Override
    public void onTick(long l) {

    }

    @Override
    public void onFinish() {

    }
};
Слоганхо
источник

Ответы:

183

Вы можете использовать этот метод:

var variableName = object: CountDownTimer(...){
    ...
}

В Котлине это называется «объектными выражениями». Документы доступны здесь: Объявления объектов

Kota1921
источник
41
Для любопытных в Котлине это называется «объектными выражениями». Документы доступны здесь: kotlinlang.org/docs/reference/object-declarations.html
Рональд Мартин,