Kotlinで抽象クラスのインスタンスを作成します


86

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() {

    }
};

回答:


182

この方法を使用できます。

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

これらは、Kotlinでは「オブジェクト式」と呼ばれます。ドキュメントはここから入手できます:オブジェクト宣言


41
好奇心旺盛な人のために、これらはKotlinでは「オブジェクト式」と呼ばれています。ドキュメントはここから入手できます:kotlinlang.org/docs/reference/object-declarations.html
Ronald Martin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.