Kotlin ‐ 가능한 한 빨리 플랫폼 타입을 제거하라[Effective Kotlin Item 3] - dnwls16071/Backend_Summary GitHub Wiki

가능한 한 빨리 플랫폼 타입을 제거하라

  • 코틀린에서는 자바의 널 여부가 확인되지 않는 타입을 널 가능 타입으로 처리하는 대신에 특별한 타입으로 처리한다.
  • 이를 플랫폼 타입(platform type)이라고 한다.
  • 플랫폼 타입은 String!과 같이 타입 이름 뒤에 느낌표 하나(!)로 표기한다.
  • 하지만 플랫폼 타입을 코드에 직접 정의할 수 없다.
val name: String = User().name // 만약 자바에서 null을 리턴하면 NPE 발생
println(name.length)
  • 다른 언어에서 왔으며 널 가능성을 알 수 없는 타입을 플랫폼 타입이라고 한다.
  • 플랫폼 타입은 위험하므로 전파되지 않도록 가능한 한 빨리 제거해야 한다.
  • 또한, 자바 생성자, 메서드, 필드에 널 가능성을 지정하는 어노테이션을 사용하여 타입을 지정하는 것이 좋다.