타입 매개변수 제한
<T extends Animal>
>> 타입 매개변수 T를 Animal과 그 자식만 받을 수 있도록 제한을 두는 것
>> T의 상한이 Animal이 되는 것, Animal이 제공하는 메서드들을 사용 가능
제네릭 메서드
정의 : <T> T genericMethod(T t)
타입 인자 전달 : 메서드를 호출하는 시점
클래스 전체가 아니라 특정 메서드 단위로 제네릭을 도입할 때 사용
메서드를 실제 호출하는 시점에 다이아몬드를 사용해서 타입을 정하고 호출
static 메서드에 제네릭을 동비하려면 제네릭 메서드를 사용해야 함
와일드카드
컴퓨터 프로그래밍에서 *, ?와 같이 하나 이상의 문자들을 상징하는 특수 문자
>> 여러 타입이 들어올 수 있다는 뜻
와일드카드는 제네릭 타입이나 제네릭 메서드를 선언하는 것이 아님
>> 이미 만들어진 제네릭 타입을 활용할 때 사용
비제한 와일드카드
>> ?만 사용해서 제한 없이 모든 타입을 다 받을 수 있는 와일드카드
상한 와일드카드
<? extends Animal>
>> 제네릭 메서드와 마찬가지로 와일드카드에도 상한 제한을 둘 수 있음
하한 와일드카드
<? super Animal>
>> ?가 Animal 타입을 포함한 Animal 타입의 상위 타입만 입력 받을 수 있음
타입 이레이저
제네릭은 자바 컴파일 단계에서만 사용되고 컴파일 이후에는 제네릭 정보가 삭제됨
>> 컴파일 전인 .java에는 제네릭의 타입 매개변수가 존재하지만 이후인 자바 바이트코드 .class에는 존재하지 않음
런타임에 타입을 활용하는 코드는 작성할 수 없음
>> 타입 매개변수에 instanceof를 허용하지 않음
>> 타입 매개변수에 new를 허용하지 않음
'Java' 카테고리의 다른 글
Java / 컬렉션 프레임워크 - LinkedList (0) | 2025.03.04 |
---|---|
Java / 컬렉션 프레임워크 - ArrayList (0) | 2025.03.04 |
Java / 제네릭(Generic) 1 (0) | 2025.03.02 |
Java / 예외 처리 - 실습 (0) | 2025.03.02 |
Java / 예외 처리 - 이론 (0) | 2025.02.28 |