제네릭이란?

|

제네릭이란?

  • 자바에서 제네릭이란 데이터의 타입을 일반화한다는 것을 의미합니다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터타입을 컴파일 시에 미리 지정하는 방법입니다. 이렇게 컴파일 시에 미리 타입검사를 수행하면 여러가지 장점이 있습니다.

  • 특징

    • 컴파일시 강한 타입체크를 할 수 있다. 자바컴파일러는 잘못 사용된 타입 때문에 발생한 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입체크를 한다. 실행 시 타입 에러가 나는 것보다는 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지하는 편이 좋다.

    • 타입변환을 제거한다. 비제네릭 코드는 불필요한 타입 변환을 하기 때문에 프로그램 성능에 악영향을 끼친다. 분명히 String 타입으로 저장했지만 요소의 값을 찾아올 때는 반드시 형변환을 거쳐서 가져와야 한다. 결국 제네릭 타입을 사용하면 타입변환을 할 필요가 없어서 프로그램 성능이 향상된다.

    • JDK 1.5 이전에는 대부분의 클래스나 메소드에서 인수나 반환값으로 Object를 사용했고, 이 경우에 Object를 다시 원하는 값으로 변경하는 작업이 필요했고 이때 오류가 발생할 가능성도 존재했습니다.


// 제네릭 타입을 사용하지 않으면 반드시 형변환을 거쳐야 했다.

List list = new ArrayList<>();
list.add("hello");
String str = (String) list.get(0);

// 제네릭 타입 사용시
// 형변환을 할 필요가 없다
List<String> list = new ArrayList<>();
list.add("hello");
String str = list.get(0); 

Comments