Error:(9, 5) Kotlin: Nested and local type aliases are not supported
원인 : typealias 를 class 또는 object 또는 어떤 Code-Block 에 넣었을때 오류가 발생
해결 : thpealias 선언을 class 밖에 (맨위에 import 하는 바로 아래에) 선언
Error:(25, 23) Kotlin: Null can not be a value of a non-null type String
원인 : 변수 타입을 지정후 기본값을 null 값으로 했을때 발생
해결 : 변수 선언시 null 값을 지정하지 않는다. 필요시 ? 로 선언
참고 : IntelliJ 를 사용한다면 빨간 밑줄이 그어짐.
Error:(72, 52) Kotlin: Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?
의미 : String? 형은 SafeCall인 (?.) 또는 non-null 단정(강제) 기호인 (!!.) 만 허용한다.
원인 : null 허용된 a변수에 null 값이 할당되었는데 a를 읽을때 (NullPointerException) 발생함.
해결1 : 조건절로 Null Check 하여 Null 값을 읽는 일이 없도록 함.
해결2 : Safe Call 기호 ?로 처리함.
해결3 : 단정기호 !!를 사용함.
참고 : Safe Call -> null이 할당된 가능성이 있는 변수를 검사하여 안전하게 호출하도록 하는 기법
Safe Call Example :
var nullTest: String?
nullTest = null
println("nullTest: $nullTest")
println("nullTest: $nullTest length: ${nullTest?.length}")
Result >null이 아니면 값을 읽고 null 이면 그냥 null을 찍음. nullTest: null length: null
Exception in thread "main" kotlin.KotlinNullPointerException
at chap02.section2.VarTestKt.main(varTest.kt:73)
at chap02.section2.VarTestKt.main(varTest.kt)
의미 : main 메소드에서 NullPointerException 이 발생하였음. (varTest.kt 파일 , at 73 Line)
원인 : null 허용된 a변수에 null 값이 할당되었는데 a를 읽을때 (NullPointException) 발생함.
해결1 : Null 값인 변수를 참조 하지 않게 함. or Null 처리 함.
Error:(103, 22) Kotlin: Type mismatch: inferred type is Int but Double was expected
원인 : 선언된 변수와 대입하는 값이 타입이 다름.
해결 : 변수 타입과 변수값을 맞추자.
Error:(104, 19) Kotlin: The floating-point literal does not conform to the expected type Int
의미 : Int 타입인데 float 타입으로 소수점이 들어 왔으니 난 인정 못하겠다
원인 : Int 형 변수에 소수점 값이 있는 데이터가 들어가 있음.
해결 : 변수 타입과 변수값을 맞추자.
참조 : val c1: Int = 1.0 <- 오류 ,,,, val c1: Int = 1 <- 정상
Error:(177, 28) Kotlin: Incompatible types: Float and String
의미 : 다음 두개의 타입을 인정 못하겠음.
원인 : String 상수(constant)값을 지정 하고 뒤에서 Float으로 검사,변환 및 사용하면 발생
해결 : 선언된 타입으로 잘 진행
참조 :