JAVA2_05_지네릭형 변환과 지네릭 타입 제거

charl hi·2021년 9월 28일
0

JAVA2

목록 보기
5/8

지네릭 타입의 형변환

  • 지네릭 타입 - 원시 타입 간의 형변환은 바람직하지 않다.(경고 발생)

  • 와일드카드가 사용된 지네릭 타입으로는 형변환 가능

Box<? extends Object> wBox = new Box<String>();
Box<? extends Object> wBox = (Box<? extends Object>)new Box<String>();

위 두문장은 같은 의미!

FruitBox<? extends Fruit> box = new FruitBox<Apple>();
FruitBox<? extends Fruit> box = (FruitBox<? extends Fruit>)new Box<Apple>();

앞에서 했던 것과 같음!



지네릭 타입의 제거

  • 컴파일러는 지네릭 타입을 제거하고, 필요한 곳에 형변환을 넣는다.
  1. 지네릭 타입의 경계(bound)를 제거
  • 예)
    • <T> -> Object
    • <T extends Fruit> -> Fruit

  1. 지네릭 타입 제거 후 타입이 불일치하면, 형변환 추가

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




Ref

0개의 댓글