TIL

2025_01_20 TIL

hi_i 2025. 1. 20. 18:50

오늘의 할일

  • "자바의 정석" 12장 Generics                                 

Generics

Generic class

  • 정의 : 컴파일시 타입체크를 해주는 기능.
  • 장점
    • 타입 안정성 제공
    • 타입체크와 형변환 생략으로 간결한 코드
  • 제한
    • static멤버에 지네릭 사용불가.
    • new연산자와 지네릭 사용불가.
  • class와 메서드에 사용가능.
//참조변수와 대입된 타입이 일치해야한다(상속관계여도 일치해야함.)
Box<apple> appleBox = new Box<apple> -> 0
Box<apple> appleBox = new Box<Grape> -> X

지네릭 클래스는 extends를 통해 제한된 타입만 받아들이는 것 가능.
class FruitBox<T extends Fruit>{...} -> Fruit의 자손만 허용

와일드 카드

<? extends T> -> T와 자손들 가능
<? super T> -> T와 조상들 가능
<?> -> 제한x 

Generic method

  • 메서드 선언부에 지네릭 타입 선언.
  • 메서드 내부의 지역적으로만 사용하므로 static메서드 상관X
//지네릭 메서드의 타입 선언 위치는 반환타입 바로 앞
class FruitBox<T>{
	static <T> void sort(...)
}

class 의 T와 sort의 메서드의 T는 서로 다른 T를 의미한다..!