제너릭 (Generic) 이란?
- 클래스에서 사용할 타입을 클래스 외부에서 사용자에 의해 지정되는 것
- 객체 타입을 컴파일 시에 체크하기 때문에 코드의 안정성을 높여주고, 형변환을 하지 않아도된다.
- 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.
필요성
- 잡자에서는 객체들을 담아 편리하게 관리하기위해 Collection 제공, 이 Collection의 대부분이 어떤 객체를 담을지 모르기 때문에 모든 자바 객체들의 base객체(최상위 객체)인 Object로 저장되어 설계하도록 되어있다.
- 이 Collection에 Element로 어떤 Type을 받아 들이는 것이 장점이지만 서로 다른 Type이 하나의 Collection에 섞여들어갈 경우 문제가 생긴다.
- JDK 5.0 에 와서 제네릭이 포함되면서 이제는 실행 전 컴파일 단계에서 특정 Collection에 객체 타입이 명시하여 지정된 객체 아니면 저장 불가능하게 함.
타입
- <> 사이에 컴파일 시 사용될 객체형 선언. api에서는 전달되는 객체가 하나의 자료형
- Type : <T> / Element : <E> / Key : <K>, Value : <V>
ex)
ArrayList : ArrayList 객체 내부에 어떤 타입의 클래스가 있는지 확인 가능 |
public static T ifEmpty(T data, T defaultValue) { if (isEmpty(data)) { return defaultValue; } return data; } |
[ 참고 ]
'개발자 기술 면접 준비 > 정리' 카테고리의 다른 글
직렬화란? (0) | 2021.06.07 |
---|---|
가비지 컬렉션이란? (0) | 2021.06.07 |
Collection란? (0) | 2021.05.31 |
static이란? (0) | 2021.05.31 |
JAVA 변수 초기화 순서 (0) | 2021.05.31 |