개발자 기술 면접 준비/정리

제너릭이란?

ucong 2021. 5. 31. 20:27

제너릭 (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;
}

 

[ 참고 ]

https://bounce4me.tistory.com/45

'개발자 기술 면접 준비 > 정리' 카테고리의 다른 글

직렬화란?  (0) 2021.06.07
가비지 컬렉션이란?  (0) 2021.06.07
Collection란?  (0) 2021.05.31
static이란?  (0) 2021.05.31
JAVA 변수 초기화 순서  (0) 2021.05.31