본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



Any 그리고 Any? 대입에 대해서


코틀린의 최상위 타입은 Any이다. 코틀린에서 타입을 정의할 때 null 안전을 위해 대입이 가능한 프로퍼티에는 명시적으로 ? 를 추가해야 한다. 여기서 궁금한 점은 Any 타입의 프로퍼티는 Any타입에 대입할수 있을까 ? 반대로 Any? 타입으로 선언한 프로퍼티는 Any타입에 대해서 대입할 수 있을까 ?


결과적으로 Any 타입은 Any? 타입에 대입할 수 있지만, 반대로 Any 타입은 Any 타입에 대입할 수 없다.


Any ? <- Any 는 대입 할 수 있다.

Any <- Any? 는 대입할 수 없다.


1
2
3
4
5
6
7
fun main(args: Array<String>) {
    val anyValue1: Any = "ktko"
    val anyValue2: Any? = anyValue1 //대입이 가능하다!
    
    val anyValue3: Any? = "ktko"
    val anyValue4: Any = anyValue3  //Type mismatch. Required: Any Found Any?
}



Any 뿐만아니라 Int 타입에 Int?를 대입하여도 컴파일 에러가 발생한다.