AVA-Generics(4)
ワイルドカード
<? extends T> : 와일드 카드의 상한 제한. T와 그 자손들만 가능
<? super T> : 와일드 카드의 하한 제한. T와 그 조상들만 가능
<?> : 제한 없음. 모든 타입이 가능.<? extends Object>와 동일
ギネス世界記録
方法の宣言部でギネスタイプの方法を発表しました
Collections.sort()はgenericメソッドであり、genericタイプの宣言位置は戻りタイプの前にあります.
//지네릭 타입이 선언된 메서드(타입 변수는 메서드 내에서만 유효)
static <T> void sort(List<T> list, Comparator<? super T> c)
//클래스 타입 매개변수 <T>와 메서드의 타입 매개변수 <T>는 별개
class FruitBox<T>{
..
static<T> void sort(List<T> list, Comparator<? upser T> c){
}
}
FruitBox<Fruit> fruitBox = new FruitBox<Fruit>();
FruitBox<Apple> appleBox = new FruitBox<Apple>();
System.out.println(Juicer.<Fruit>makejuice(fruitBox)); //메서드 호출, 타입 대입
System.out.println(Juicer.<Apple>makejuice(appleBox)); //메서드 호출, 타입 대입
static<T extends Fruit> Juice makeJuice(FruitBox<T> box) {
String tmp =" ";
for(Fruit f : box.getList()) tmp += f+ " ";
return new Juice(tmp);
}
System.out.println(<Fruit>makeJuice(fruitBox)); //에러 클래스 이름 생략 불가
System.out.println(this.<Fruit>makeJuice(fruitBox)); //ok
System.out.println(juicer.<Fruit>makeJuice(fruitBox)); //ok
Reference
この問題について(AVA-Generics(4)), 我々は、より多くの情報をここで見つけました https://velog.io/@jo_dbsgh95/JAVA-지네릭스Generics-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol