• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

타입 매개변수 불일치

24.05.08 15:50 작성 조회수 129

0

타입 추론이 있다는 것은 예를 들어 참조변수의 타입이 GenericBox<Integer>일 때, 인스턴스의 타입도 반드시 GenericBox<Integer>이어야 한다는 뜻인가요?

아래 코드와 같이 작성하는 경우 컴파일 오류가 발생하는데 제네릭에서 타입 매개변수에 타입을 넣는 것은 다형적 참조와 무관한 부분인 건가요? 무조건 참조변수와 인스턴스의 타입 매개변수가 동일해야 하는 건가요?

GenericBox<Object> tmp = new GenericBox<String>(); // 컴파일 오류

답변 1

답변을 작성해보세요.

1

안녕하세요. 도토리님

해당부분은 타입 추론과는 무관합니다.

제네릭은 일반적인 상속관계가 성립하지 않습니다.

예를 들어서 GenericBox<Object>는 GenericBox<String>의 부모 타입이 아닙니다.

조금 더 뒤에서 설명하는 타입 매개변수 제한과 와일드카드 부분을 들어보시면 이런 부분을 어떻게 해결하는지 학습할 수 있습니다. 🙂

감사합니다.