제네릭 사용이유

골드곽
|2024. 10. 2. 21:49
반응형

1. 재사용성

2. 타입 안전성

 

제네릭의 핵심

사용할 타입을 미리 결정하지 않는다는 점이다.

(클래스를 정의하는 시점에 결정하는 것이 아니라 실제 사용하는 생성 시점에 타입을 결정하는 것)

 

제네릭 타입

GenericBox<T> 를 제네릭 타입이라 한다.

GenericBox<T> 에서 T를 타입 매개변수라 한다.

 

한번에 여러 타입 매개변수를 선언할 수 있다.

class Data<K, V> {}

타입인자는 기본형은 사용할 수 없으며, 래퍼 클래스를 사용해야한다.

 

class Data<T extends Animal>{} 

타입 매개변수로 값의 범위를 예측할 수 있다.

1. Animal의 자식이 들어올것이라고 예상할 수 있다. (Object와 모든 객체가 들어오는 상황을 대비가능)

2. Animal에서 정의한 메서드를 사용해서 미리 구현이 가능하다.

 

제네릭 메서드

<T> T genericMethod(T t){}

1. 제네릭 메서드는 클래스 전체가 아닌 특정 메서드 단위로 제네릭 도입시 사용한다.

   메서드 호출시 타입인자를 전달해서 타입을 지

2. 메서드 반환 타입 왼쪽 <T> 필수이다.

 

<?> 와일드카드

 

상한 제한 방식이 제네릭과 와일드카드가 위치가 다름

 

제네릭: static <T extends Animal> void method(Box<T> box){}

와일드카드: static void method(Box<? extends Animal> box){}

 

와일드카드는 하한 지정도 가능하다.

static void method(Box<? super Animal> box){}

Animal 상위급만 인자로 받을수있다.

반응형

'공부 > Java' 카테고리의 다른 글

메모리 가시성  (0) 2024.09.20
스레드 기본 정보  (1) 2024.09.18
스레드 생성과 실행  (0) 2024.09.16
프로세스와 스레드란  (0) 2024.09.16
래퍼, Class 클래스란  (0) 2024.05.30