minNa2 2023. 4. 12. 18:19

<제네릭(Generic)>
- Java5부터 새로 추가된 타입으로 제네릭을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.
- 컬렉션 등에서 널리 사용되므로 확실히 이해해 두어야 한다.
- 클래스나 메소드에서 컴파일 할 때 타입체크(Type check)를 하는 기능이다.


<제네릭의 이점>
- 컴파일 시 강한 타입 체크를 할 수 있다.
  클래스나 메소드에서 컴파일 할 때 타입체크(Type check)를 하여 실행 에러가 나기 전 컴파일 단계에서 에러를 사전에 방지한다.
- 미리 객체(인스턴스)의 공통적인 타입을 명시해서 처리하기 때문에 안정성이 높고, 타입 변환(casting)을 제거한다.

ex)
<비제네릭 코드>
List list = new ArrayList();
list.add("hello");
String str = (String)list.get(0); // 타입 변환을 해야 한다.

<제네릭 코드>
List<String> list = new ArrayList<String>(); // < > : 제네릭
list.add("hello");
String str = list.get(0); // 타입 변환을 하지 않는다.


// T: 타입을 선언 안 하고 있다가 main에서 객체 생성 시 타입 명시할 때 컴파일 단계에서 명시한 타입으로 바뀜

반응형