Erstellen Sie eine Instanz einer abstrakten Klasse in Kotlin

85

Ich bin neu in Kotlin und versuche es in meinem Android-Projekt zu verwenden. Ich habe diesen Code:

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

    }

    override fun onFinish() {

    }
}

Und es wirft den Fehler:

Cannot create an instance of an abstract class.

Grundsätzlich versuche ich, eine Instanz von CountDownTimer zu erstellen und kann nicht herausfinden, wie sie in Kotlin konvertiert werden soll.

Hier ist der Code in Java:

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

    }

    @Override
    public void onFinish() {

    }
};
Sloganho
quelle

Antworten:

177

Sie können diese Methode verwenden:

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

Diese werden in Kotlin als "Objektausdrücke" bezeichnet. Die Dokumente finden Sie hier: Objektdeklarationen

Kota1921
quelle
41
Für Neugierige werden diese in Kotlin "Objektausdrücke" genannt. Die Dokumente sind hier verfügbar: kotlinlang.org/docs/reference/object-declarations.html
Ronald Martin