불공변1 [Effective Kotlin] 아이템 24. 제네릭 타입과 variance 한정자를 활용하라 자바를 공부하고 적용하면서 추상화를 하기 위해 인터페이스를 적극 활용했었고, 강타입 언어였기에 특히 타입을 잘 활용했어야 했다. 그 과정에서 제네릭을 다시 한번 공부하게 되었고, 공변, 반공변 성 등의 특징을 제네릭이 어떻게 풀어냈는지 공부했다. extend, super 등의 한정자를 사용하여 타입을 적절히 제어했었던 기억이 있다. 코틀린도 마찬가지로 제네릭의 한정자를 제공한다. 자바의 결함을 개선하면서 말이지. Out 한정자 파라미터를 공변으로 만든다. class University open class Student class FreshMan : Student() fun main(args: Array) { val b: University = University() // OK val a: Universi.. 2023. 1. 27. 이전 1 다음 반응형