실시간 강의

21. 지네릭스 01/14 (1) - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 1. 14. 12:40

1. 지네릭스 - 타입시스템

  • 지네릭스 : 여러 종류 배열을 참조
  • Object를 T타입으로 변환
  • Object : 여러 종류 객체 저장타입체크X(instanceof 필요)
  • Class Box -> Class Box<T> -> Class Box><T extends &> 타입 체크 강화

2. 지네릭스의 제한

  • static 안됨
  • new T()안됨
  • Box<Apple> box = new Box<Apple>() - 일치해야한다

3. 와일드카드

  • <? extends T> : 와일드 카드의 상한 제한. T와 그 자손들만 가능
  • <? super T> : 와일드카드의 하한 제한. T와 그 조상들만 가능
  • <?> : 제한 없음 모든 타입이 가능. <? extends Object>와 동일

4. 지네릭 메서드

  • 메서드 선언부에 타입 매개변수(type parameter)를 명시하여, 호출 시점에 그 타입 매개변수가 구체적인 타입으로 치환되어 동작하도록하는 메서드

5. 지네릭 타입의 형변환

  • Box<Apple> -> Box<? extends Fruit> (구제척) = (Box<? extends Fruit>)Box<Apple> 형변환O
  • Box<? extends Furit> -> Box<Apple> (경고) = (Box<Apple>)Box<? extends Fruit> 형변환X
  • Optional<Object> -> Optional<?> -> Optional<String> 가능
  • Optional<Object> -> Optional<String> 불가능

6. 지네릭 타입의 제거

  • 하위호환성 제거 - 컴파일시 소스파일 체크, 형변환후 제거