Application()是Kotlin中的类还是函数?

时间:2017-12-01 02:36:57

标签: android kotlin

我是Kotlin的初学者,以下示例代码来自网页。

我认为Application()是一个类,UIApp继承自Application()类。

但是在Android Studio 3.01中,Application()的提示显示为方法,你可以看到iamge,它让我感到困惑!

Android Studio 3.01中提示的图片

enter image description here

class UIApp : Application() {

    companion object {
        var instance: UIApp by NotNullSingleValueVar()
    }

    override fun onCreate() {
        super.onCreate()
        instance = this
    }

    class NotNullSingleValueVar<T> {

        private var value: T? = null

        operator fun getValue(thisRef: Any?, property: KProperty<*>): T =
                value ?: throw IllegalStateException("${property.name} not initialized")

        operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
            this.value = if (this.value == null) value
            else throw IllegalStateException("${property.name} already initialized")
        }
    }

}

1 个答案:

答案 0 :(得分:5)

类无法继承函数。

您继承了Application类,它只有一个构造函数,它是空构造函数

https://kotlinlang.org/docs/reference/classes.html#inheritance