• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

4강 타입소거 관련 질문

23.11.06 11:05 작성 조회수 153

1

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

답변 2

·

답변을 작성해보세요.

1

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

 

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

 

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

 

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

감사합니다! 🙏

비오님의 프로필

비오

질문자

2023.11.12

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

1

비오님의 프로필

비오

질문자

2023.11.06

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