> Java > Java시작하기 > 본문

Java 제네릭에서 T와 ?의 차이점

王林
풀어 주다: 2020-01-15 16:28:17
원래의
5926명이 탐색했습니다.

Java 제네릭에서 T와 ?의 차이점

T는 유형을 나타냅니다.

클래스에 추가:

class SuperClass<A>{}
로그인 후 복사

메소드에 추가:

public <T>void fromArrayToCollection(T[] a, Collection<T> c){}
로그인 후 복사

(무료 학습 비디오 튜토리얼 공유: #🎜🎜 #java 비디오 튜토리얼)

메서드의 는 일반 매개변수가 대괄호에 사용된다는 의미입니다. 클래스에 일반 매개변수를 전달할 필요가 없습니다. 호출 유형 위의 제네릭 매개변수의 경우 메서드에 사용된 제네릭이 클래스에 전달된 제네릭과 일치한다는 전제가 있습니다.

class People<T>{
public void show(T a) {
   }
}
로그인 후 복사

T T2 확장은 전달된 매개변수가 T2 또는 T2의 하위 유형임을 의미합니다.

?은 모든 유형을 나타내는 와일드카드 문자입니다.

은 일반적으로 참조 변수를 정의하는 데 사용됩니다. 이 방법의 장점은 아래와 같이 sup 참조 변수를 정의하면 여러 개체를 가리킬 수 있다는 것입니다.

SuperClass<?> sup = new SuperClass<String>("lisi");
sup = new SuperClass<People>(new People());
sup = new SuperClass<Animal>(new Animal());
로그인 후 복사

?를 사용하지 않고 고정 유형을 사용하는 경우:

SuperClass<String> sup1 = new SuperClass<String>("lisi");
SuperClass<People> sup2 = new SuperClass<People>("lisi");
SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");
로그인 후 복사
이것이 ?의 이점입니다.

추천 관련 기사 및 튜토리얼:

java 입문 튜토리얼

위 내용은 Java 제네릭에서 T와 ?의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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