일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MSSQL
- SSL
- table
- Spring
- es6
- Eclipse
- Express
- plugin
- mybatis
- SPC
- Android
- react
- NPM
- window
- Java
- IntelliJ
- Python
- JavaScript
- mapreduce
- vaadin
- hadoop
- GIT
- xPlatform
- SQL
- 공정능력
- Kotlin
- tomcat
- 보조정렬
- R
- Sqoop
- Today
- Total
DBILITY
generic type의 사용 이유 본문
자바에 제너릭 타입(Generic Type)이 추가 된지도 15년이 되었다.맞나?ㅎㅎ
java 8의 collection,lambda,stream,NIO 사용하려면 제너릭타입의 이해 없이는 거의 불가하다고 보는게 좋겠다.
제너릭 타입의 사용으로 컴파일타임에 강한 타입체크를 할 수 있다.
런타임시 오류보다 훨씬 낫다.
나도 이전엔 별다른 생각없이 강제 type casting을 사용했었다. 지금도 습관적으로 그렇게 하고 있다.
제너릭은 강한 type checking이 이루어지다 보니 당연하게도 불필요한 type casting,auto boxing,auto unboxing이 제거(?)된다.
사람이 하는 일이건 프로그램이 하는 일이건 간에 절차가 간소화 된다는 건 빠른 업무의 종료를 뜻한다.
상식이다. 상식을 전혀 느끼지 못한 나는 비상식적 인간이다.
제너릭은 설계시 구체적인 타입을 명시하지 않고, 타입 파라미터로 선언했다가
실제 사용될때, 지정한 타입으로 자동 변환된다.
형식은 대략 아래와 같다.
public 클래스명<T>....
public 인터페이스명 <T>....
public 클래스명<K,V>....
public 인터페이스명 <K,V>....
public <T,R> R 메써드명(T t)... 메서드의 Return Type앞에 <>, Parameter와 일치
public <?>... 모든 Type 가능
public <? extends Type> Type을 상속한 하위 Type으로 제한
public <? super Type> Type의 상위 Type으로 제한
일반적으로 사용되는 Type명칭은
T Type
K Key
V Value
E Element
N Number 등이다.
'java > basic' 카테고리의 다른 글
javafx webpage loading (0) | 2021.04.16 |
---|---|
java file stream word count max value (0) | 2018.06.04 |
java lambda stream 실습 (0) | 2018.05.27 |
java lambda map,reduce,filter summary (0) | 2018.05.25 |
java lambda (0) | 2018.05.25 |