Создайте экземпляр абстрактного класса в 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(...){
    ...
}

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


41
Для любопытных в Котлине это называется «объектными выражениями». Документы доступны здесь: kotlinlang.org/docs/reference/object-declarations.html
Рональд Мартин,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.