> Java > java지도 시간 > Java Generics: `super` 키워드는 실제로 제한된 와일드카드와 어떻게 작동합니까?

Java Generics: `super` 키워드는 실제로 제한된 와일드카드와 어떻게 작동합니까?

Barbara Streisand
풀어 주다: 2024-11-25 13:55:12
원래의
812명이 탐색했습니다.

Java Generics: How Does the `super` Keyword Really Work with Bounded Wildcards?

Java Generics: 'Super' 키워드 이해

소개:

Java Generics의 'super' 키워드 이해 당황스러운 작업이 될 수 있습니다. 이 글은 구체적인 예를 통해 개념의 미묘한 차이를 탐구하고 일반적인 오해를 해결함으로써 이 개념을 밝히는 것을 목표로 합니다.

'Super' 키워드를 사용한 제한된 제네릭:

제한된 와일드카드 목록 슈퍼 넘버> Number 및 해당 상위 유형을 캡처할 수 있습니다. 그러나 이것이 이 목록에 숫자 상위 유형을 추가할 수 있다는 의미는 아니라는 점에 유의하는 것이 중요합니다.

객체 대 정수의 예기치 않은 동작:

예를 들어, Integer(0)을 List, Object()는 그럴 수 없습니다. 이 동작은 제한된 와일드카드에 대한 캡처 변환 규칙에서 발생합니다. 목록 숫자, 개체 및 직렬화 가능 항목만 캡처할 수 있으며 숫자 중 숫자가 가장 낮은 상위 유형입니다.

목록에 문자열을 추가하는 이유 컴파일되지 않음:

String이 Number의 슈퍼클래스인 Object를 확장하더라도 String을 List 컴파일에 실패합니다. 이는 제한된 와일드카드가 PECS(생산자 확장, 소비자 슈퍼) 지침을 따르기 때문입니다. 목록 슈퍼 넘버> 는 Number의 소비자이므로 인수 유형은 String의 생성자가 될 수 없습니다.

Java Generics에서 허용됩니까?

Java 제네릭의 구문은 의미가 없다는 사실에서 비롯됩니다. 제네릭 유형이 바인딩된 상위 유형을 허용할 수 있는 경우 특정 유형 매개변수가 필요하지 않습니다.

결론:

Java 제네릭의 'super' 키워드 이해 PECS 지침에 대한 의미와 준수에 대한 신중한 고려가 필요합니다. 이러한 개념을 이해하면 제한된 와일드카드를 효과적으로 활용하여 API의 유연성을 향상시킬 수 있습니다.

위 내용은 Java Generics: `super` 키워드는 실제로 제한된 와일드카드와 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿