728x90
반응형
제네릭이란?
제네릭
- 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능
- <T>는 T가 타입 파라미터임을 뜻하는 기호. 타입이 필요한 자리에 T를 사용 할 수 있음을 알려줌
제네릭 타입
제네릭타입
- 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스
- 선언부에 '<>' 부호가 붙고 그 사이에 타입 파라미터들이 위치
public class 클래스명<A,B, ...> {...}
public interface 인터페이스명<A,B,...> {...}
- 타입 파라미터는 일반적으로 대문자 알파벳 한 글자로 표현
- 외부에서 제네릭 타입을 사용하려면 타입 파라미터에 구체적인 타입을 지정. 지정하지 않으면 Object 타입이 암묵적으로 사용
제네릭 메소드
제네릭 메소드
- 타입 파라미터를 가지고 있는 메소드. 타입 파라미터가 메소드 선언부에 정의
- 리턴 타입 앞에 <> 기호 추가하고 타입 파라미터 정의 후 리턴 타입과 매개변수 타입에서 사용
- 타입 파라미터 T는 매개값의 타입에 따라 컴파일 과정에서 구체적인 타입으로 대체
제한된 타입 파라미터
제한된 타입 파라미터
- 모든 타입으로 대체할 수 없고, 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체 할 수 있는 타입 파라미터
public <T extends 상위타입> 리턴타입 메소드(매개변수, ...) { ... }
- 상위 타입은 클래스뿐만 아니라 인터페이스도 가능
public <T extends Number> boolean coompare(T t1, T t2) {
double v1 = t1.doubleValue(); // Number의 doubleValue() 메소드사용
double v2 = t2.doubleValue(); // Number의 doubleValue() 메소드사용
return (v1 == v2);
}
와일드 카드 타입 파라미터
와일드카드 타입 파라미터
- 제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 범위에 있는 모든 타입으로 대체 할 수 있는 타입 파라미터. ?로 표시
728x90
반응형
'자바' 카테고리의 다른 글
자바 - 컬렉션 자료구조 (0) | 2023.01.25 |
---|---|
자바 - 멀티 스레드 (0) | 2023.01.25 |
자바 - java.base 모듈 (0) | 2023.01.18 |
자바 - 예외 처리 (0) | 2023.01.18 |
자바 - 라이브러리와 모듈 (0) | 2023.01.17 |