제네릭 타입과 원시 타입 간의 형변환은 바람직 하지 않다(경고 발생)
Box b = null;
Box<String> bStr = null;
b = (Box)bStr; //Box<String> -> Box 가능 그러나 경고
bStr = (Box<String>)b; // Box -> Box<String> 가능하지만 경고
와일드 카드가 사용된 제네릭 타입으로는 형변환 가능
FruitBox<? extends Fruit> fbox = (FruitBox<? extends Fruit>)new FruitBox<Fruit>();
FruitBox<? extends Fruit> abox = new FruitBox<Fruit>(); //자동으로 생략
제네릭 타입의 제거
- 컴파일러는 제네릭 타입을 제거하고 피룡한 곳에 형변환을 넣는다.
1. 제네릭 타입의 경계(bound)를 제거

2. 제네릭 타입 제거 후에 타입이 불일치하면 형변환을 추가

3. 와일드 카드가 포함된경우 적절한 타입으로 형변환 추가

'하.. > java' 카테고리의 다른 글
| ch12 열거형에 멤버 추가하기 (0) | 2021.12.25 |
|---|---|
| ch12 열거형(enum) 열거형의 조상 (0) | 2021.12.25 |
| ch13 스레드의 우선순위 스레드 그룹 (0) | 2021.12.24 |
| ch13 싱글 스레드와 멀티 스레드 스레드의 i/o블로킹 (0) | 2021.12.24 |
| ch13 프로세스와 쓰레드 (0) | 2021.12.24 |