개발/Java
[Java] Generics
아바바
2020. 5. 23. 02:35
자바 언어에 타입 파라미터라는 개념을 도입한 것이 제네릭스(Generics)이다.
인터페이스나 메서드에서 처리할 타입을 사용하는 쪽에서 지정할 수 있다.
가장 쉬운 예로 List 인터페이스는 제네릭스 기반으로 작성되었다.
List
booelan add(E e);
E get(int index);
List<Integer> list;
혹은 List<String> list;
등 사용하는 쪽에서 지정하는 것이다.
제네릭스가 없다면 여러 타입을 담으려면 결국 모든 클래스의 조상인 Object로 지정해야 했을 것이다.
List
boolean add(Object object);
Object get(int index);
이렇게 하면 발생하는 문제는 다음과 같다.
-
형변환
매번 사용할 때마다 형변환을 해줘야 한다.Integer 타입을 예로 들면,
Integer value = 4; add((Object) value); (Integer) ret = get(1);
-
타입 체크가 안됨
Integer 리스트를 만들었는데 모르고 Long을 넣어도 알 수가 없다.Long value = 4L; add((Object) value);
이러한 이유로 제네릭스를 이용하는 것이 좋다.
참고자료
토비의 스프링 3.1, 이일민