제네릭에서 많이쓰는
코틀린에서 <in T>
자바에서는 <? super T>
키워드 궁금한게 있는데
이게 제네릭 클래스에서 AAA<슈퍼(부모)타입> 을 AAA<서브(자식) 타입>에 대입할 수있게 해주는거라는데
궁금한게 일반적으로 반대로 되어야하는것 아닌가요? out T랑 ? extends T 가있는데 왜쓰는건가요?
그니까 다형성때문에 부모타입에 자식(서브)타입의 클래스들이 대입되어야하는것 아닌가요?
거꾸로 된거같은데 이런건 언제 왜 쓰는거에요?
보니까 몇몇 라이브러리 클래스에서 이미 이거 쓰는거같던데
같거나 상위타입만 넣을 수 있다는거임. 그러면 하위타입으로 안전하게 out하거나 할 수 있음. - dc App
흠 잘이해가 안가는데스ㅠ