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를 의미한다..!