Створіть екземпляр абстрактного класу в Kotlin


88

Я новачок у Котліні і намагаюся використовувати його у своєму проекті 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() {

    }
};

Відповіді:


185

Ви можете використовувати цей метод:

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

Вони називаються "виразів об'єктів" у Котліні. Документи доступні тут: Декларації об’єктів


41
Для тих, хто цікавиться, їх у Котліні називають "виразів об'єктів". Документи доступні тут: kotlinlang.org/docs/reference/object-declarations.html
Рональд Мартін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.