【问题标题】:Create an instance of an abstract class in Kotlin在 Kotlin 中创建抽象类的实例
【发布时间】:2015-12-07 21:28:17
【问题描述】:

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

    }
};

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    你可以使用这个方法:

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

    这些在 Kotlin 中被称为“对象表达式”。文档可在此处获得:Object expressions

    【讨论】:

    • 对于那些好奇的人,这些在 Kotlin 中被称为“对象表达式”。文档可在此处获得:kotlinlang.org/docs/reference/object-declarations.html
    • 是否可以将simpleName 值分配给对象表达式?
    • 如何在代码后面的某个时间点将对象 variableName 分配为 null?
    • 看起来你应该使用可为空的,例如 var variableName: CountDownTimer? = 对象:...
    猜你喜欢
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多