자바 API 도큐먼트를 보면 거의 대부분이 꺽쇠괄호(<>)가 포함되어있습니다.
이 꺽쇠괄호는 제네릭 표현인데, 제네릭이 무엇인지 알아보겠습니다.
제네릭은 클래스, 인터페이스, 메서드를 정의할 때
특정 멤버의 타입을 파라미터로 지정할 수 있도록 하는 것을 말합니다.
우선 제네릭을 사용하지 않았을 때를 살펴보겠습니다.
Object 타입, 따라서 모든 타입을 담을 수 있는 Box라는 클래스에 여러 타입의 객체를 담아보겠습니다.
[Box.java]
[Main.java]
Main 클래스를 보시면 주석처리된 부분과 같이
다소 불필요해 보이는 타입변환이 일어나는 것을 확인할 수 있습니다.
제네릭을 사용해보겠습니다.
제네릭 멤버를 만들 땐, 해당 멤버명 옆에 <>를 사용해 파라미터로 지정할 타입을 정해줍니다.
[GenericBox.java]
[Main.java]
Main 클래스에 표시된 부분에서, T를 지정해 주었을 때 실제로 재구성된 GenericBox는 아래와 같습니다.
결론적으로,
타입을 미리 명시해주는 제네릭을 사용했을때 장점은....
1. 컴파일 시 미리 강한 타입 체크를 해준다. (에러 방지)
2. 타입변환 과정을 제거해준다.
자바의 여러 클래스를 활용하려면 거의 필수적인 개념이므로
정리해두시면 좋을 것 같네요.
'Dev- > Java' 카테고리의 다른 글
@SuppressWarning란? (0) | 2018.09.07 |
---|---|
컬렉션 프레임워크란 (0) | 2018.08.23 |
프로세스, 스레드 (0) | 2018.08.22 |
Java equals(), hashCode()의 차이 (0) | 2018.08.22 |
인터페이스, 추상 클래스의 차이 (0) | 2018.08.21 |