2017-12-01 3 views
0

저는 Kotlin의 초보자입니다. 다음 샘플 코드는 웹 페이지에서 가져온 것입니다.Application()이 Kotlin의 클래스 또는 함수입니까?

Application()이 클래스이고 UIApp가 Application() 클래스에서 상속 받았다고 생각합니다.

Android Studio 3.01에서는 Application()의 힌트가 메서드로 표시되어 iamge가 표시되어 혼란스러워집니다!

클래스는 함수를 상속 할 수 없습니다 안드로이드에서 힌트의 이미지 스튜디오 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") 
     } 
    } 

} 

답변

5
+0

감사 하나만 생성자가 응용 프로그램 클래스를 계승하고 있지만 왜 응용 프로그램의 힌트입니다 (안드로이드 스튜디오 3.0의 방법으로 표시 ? – HelloCW

+0

다시 말하지만, 메서드가 아니라 생성자입니다. 메소드에는 리턴 유형이 있습니다. 'public Application()'은 리턴 타입을 가지고 있지 않습니다. –

관련 문제