인프런 커뮤니티 질문&답변

비오님의 프로필 이미지
비오

작성한 질문수

코틀린 고급편

4강. 선언 지점 변성 / 사용 지점 변성

4강 타입소거 관련 질문

해결된 질문

작성

·

230

1

자바의 경우 실제 런타임에서 제네릭은 타입 소거되니까, 클래스에 variance를 주더라도 실제 런타임에서는 런타임에는 그냥 Cage가 되는거 아닌가요?그러면 animal 케이지에 다른걸 넣어도 런타임에서는 문제가 없지않을까.. 싶어서요

답변 2

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 비오님! 질문 주셔서 감사합니다!! 😊

 

결론부터 말씀드리면, 자바에서는 클래스에 variance를 주는 기능이 없습니다! 선언지점변성은 코틀린에만 존재하는 기능이고, 자바에서는 사용 지점 변성처럼 특정 변수나 특정 함수에 대해 ? extends T 혹은 ? super T 를 사용해야 해요!

 

즉, "자바의 경우 실제 런타임에서 제네릭은 타입 소거되니까, 클래스에 variance를 주더라도"라는 부분에서 자바는 클래스에 variance를 줄 수 없다 라고 말씀드리는 부분입니다.

 

혹시나 제가 질문을 잘못 이해했거나 아직 이해에 어려운 부분이 있으시다면 편하게 질문 남겨주세요!!! 🙏🙏 (제네릭에서 변성이 많이 많이 어려운 부분이긴 합니다 😭

감사합니다! 🙏

비오님의 프로필 이미지
비오
질문자

아하, 우선 제 질문 자체가 일부 잘못되긴 했네요. 자바는 클래스에는 variance 를 줄 수 없군요. 감사합니다. 추가로, 뒤에 강의에서 소거 내용이 나와서 해결되었습니다 !

1

비오님의 프로필 이미지
비오
질문자

참고로 8분 20초 전후 내용입니다

비오님의 프로필 이미지
비오

작성한 질문수

질문하기