JAVA - 지네릭스(Generics) (5)
지네릭 타입의 형변환
- 지네릭 타입과 원시 타입 간의 형변환은 바람직 하지 않다. ( 경고 발생 )
Box<Object> objBox = null;
Box box = (Box)objBox; //ok. 지네릭타입 -> 원시타입. 경고발생
objBox = (Box<Object>)box; //ok. 원시타입 ->지네릭 타입. 경고발생
지네릭 타입과 non-generic 타입간의 형변환은 항상 가능하다. 다만 경고가 발생할 뿐이다.
Box<Object> objBox = null;
Box<String> strBox = null;
objBox = (Box<Object>)strBox; //에러. Box<String> -> Box<Object>
strBox = (Box<String>)objBox; //에러. Box<Object> -> Box<String>
- 와일드 카드가 사용된 지네릭 타입으로는 형변환 가능
Box<Object> objBOX = (Box<Object>) new Box <String>(); //에러, 형변환 불가능
Box<? extends Object> wBox = (Box<? extends Object>)new Box<String>(); //ok
Box<? extends Object> wBox = new Box<String>();
//매개변수로 FruitBox<Fruit>, FruitBox<Apple>, FruitBox<Grape> 등이 가능
static Juice makeJuice(FruitBox<? extends Fruit> box){ ... }
FruitBox<? extends Fruit> box = new FruitBox<Fruit>(); //ok
FruitBox<? extends Fruit> box = new FruitBox<Apple>(); //ok
Author And Source
이 문제에 관하여(JAVA - 지네릭스(Generics) (5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jo_dbsgh95/JAVA-지네릭스Generics-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)