반응형
제네릭 클래스 정의
- 일반적이라는 의미로 하나의 코드로 여러 타입을 동시에 처리하는 기술
- 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법
- JDK 1.5부터 사용
- 클래스를 정의할 때 클래스 안에서 사용하는 자료형을 구체적으로 명시하지 않고 'T'와 같은 기호로 표시
- 이후 객체를 생성할 때 'T' 자리에 구체적인 자료형을 적어줌
제네릭 사용 이전의 불편한 점
- 데이터를 Box 클래스에서 가져올 때마다 형변환 필요
- 강제 형변환할 경우 오류 발생
기본 예제
제네릭 예제 (2)
- 동일한 형태의 데이터 타입인 경우
제네릭 예제 (3)
- 서로 다른 데이터 타입을 가지는 경우
타입 변수 표기법
- 제네릭 클래스는 여러개의 타입 매개 변수를 가질 수 있으나,
- 타입의 이름은 클래스나 인터페이스 내에서 유일해야 함
- 한 개의 대문자로 표시하는 관례 (변수의 이름과 구분하기 위해서)
- 타입 매개 별수는 기초 자료형으로 객체화될 수 없음
- E - element (요소 : 자바 컬렉션 라이브러리에서 많이 사용)
- K - key
- N - number
- T - Type
- V - value
- S, U, V, etc.
제네릭 메소드
- 일반 클래스는 메소드에서도 타입 매개 변수를 사용하여 제네릭 메소드를 정의
- 이 때 타입 매개 변수의 범위는 메소드 내부로 제한됨
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 4-7. 예외처리 (0) | 2022.02.04 |
---|---|
[Zero-base] 4-6. Collection과 Map (0) | 2022.02.04 |
[Zero-base] 4-4. 날짜 관련 클래스 (0) | 2022.02.04 |
[Zero-base] 4-3. Math 클래스 (0) | 2022.02.04 |
[Zero-base] 4-2. StringBuffer 클래스와 StringBuilder 클래스 (0) | 2022.02.04 |