티스토리 뷰
반응형
제네릭은 클래스 내부에서 사용할 데이터타입을 외부에서 지정하는 기법을 의미합니다. 코드에서 Person 클래스 내부에 선언된 변수 info 는 아래 코드에서 객체를 생성 할 때 지정해 주는 String이 된다. 당연히 객체마다 다른 데이터타입을 지정해서 사용할 수 있게 된다. 이 때 유의해야 할 것은 제네릭에서는 참조형 변수 타입만을 사용할 수 있다는 것입니다. 원시 변수 타입을 사용할 경우 wrapper 클래스를 이용해야 합니다.
제네릭을 하나만 사용할 수 있는 것은 아닙니다. 두 개 이상 사용할 수도 있고
클래스가 아닌 메소드에도 적용할 수 있습니다.
또 제네릭을 사용되는 데이터 타입을 특정 클래스의 자식클래스로 제한 시킬 수도 있습니다. 위 코드에서 중요한 부분은 T extends Info 입니다. T 자리에 오는 타입을 Info 클래스를 상속한 타입으로 제한하겠다는 뜻입니다. extends 뿐아니라 implements 관계에서도 사용할 수 있습니다.
만약 코드의 다른 모든 부분이 똑같고 데이터 타입의 유형만 다른 경우 이런 제네릭을 활용한다면 상당한 이점을 얻을 수 있을 것입니다.
그리고 그런 특성을 가진 가장 대표적인 코드는 컬렉션과 관련된 코드입니다. 컬렉션에서는 제네릭을 사용함으로서 안정적인 컬렉션을 만들 수 있게 됩니다.
컬렉션에 사용되는 객체 타입을 지정해 주면 해당하는 객체 타입만을 사용할 수 있게 되어 엉뚱한 객체를 집어넣는 일을 막을 수 있습니다.
반응형
'language > JAVA' 카테고리의 다른 글
자바 명명 규칙(Java naming conventions) (0) | 2019.03.13 |
---|---|
Collection (0) | 2019.01.30 |
동기화 synchronized (0) | 2019.01.30 |
스레드 Thread (0) | 2019.01.30 |
네트워크, 소켓 (0) | 2019.01.30 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 마르코프 연쇄
- 디자인패턴
- Count
- 자바스크립트 개론
- 크롬
- Spring in Action
- 로그
- REST API
- Markov
- Warning
- 클린코드
- GROUP BY
- RESTful
- html
- java
- 문장 생성기
- 야근
- 동적계획법
- 자바스크립트개론
- was
- 코딩의 기술
- 경고
- 마르코프
- 전략패턴
- 유지보수
- 몰라서망신
- markov chain
- DP
- CONVENTIONS
- restful api
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함