สร้างอินสแตนซ์ของคลาสนามธรรมใน Kotlin


90

ฉันเพิ่งเริ่มใช้ 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() {

    }
};

คำตอบ:


189

คุณสามารถใช้วิธีนี้:

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

สิ่งเหล่านี้เรียกว่า "การแสดงออกของวัตถุ" ใน Kotlin เอกสารอยู่ที่นี่: นิพจน์ออบเจ็กต์


42
สำหรับผู้ที่อยากรู้อยากเห็นสิ่งเหล่านี้เรียกว่า "การแสดงออกของวัตถุ" ใน Kotlin เอกสารมีอยู่ที่นี่: kotlinlang.org/docs/reference/object-declarations.html
Ronald Martin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.