IT/Android

[Kotlin] Not enough information to infer type variable T 에러

토마토조아 2019. 7. 31. 14:29
728x90

Kotlin으로 안드로이드 프로그래밍은 처음 시작한다면 이 에러를 거의 100% 확률로 접할 수 있다.

물론 초기만 당하고, 한 번 당해보면 그 뒤부터는 당할 일이 없는 에러이기도 하다.

위의 에러를 직역해본다면 다음의 뜻이다.


"정보가 불충분하여 변수 T에 대한 타입을 추론할 수 없다."


실제 빌드타임에 에러는 아래와 같이 발생한다.

C:\workspace\testkotlin1\app\src\main\java\com\testkotlin1\MainActivity.kt: (23, 13): Type inference failed: Not enough information to infer parameter T in fun <T : View!> findViewById(p0: Int): T!
Please specify it explicitly.

> Task :app:buildInfoGeneratorDebug

Type 을 명시적(Explicit)으로 써라 라는 에러를 발생하는 것이다.

 

따라서 아래의 코드를 

if (findViewById(R.id.fragment_container) != null) {
    if (savedInstanceState != null) {
        return
    }
}

다음과 같이 명시적으로 써준다. 물론 View 종류에 ListView, RecyclerView, LinearLayout 등등 다양하게 바뀔 수 있다.

if (findViewById<FrameLayout>(R.id.fragment_container) != null) {
    if (savedInstanceState != null) {
        return
    }
}
728x90