Generic이란 ?
클래스에 사용할 타입을 디자인(설계)시에 지정하는 것이 아니라 클래스를 사용할 때
지정한 후 사용하는 기술을 말한다.
Generic 사용시 장점
1. 컴파일시 잘못된 타입 사용을 체크하기 때문에 안전한 코딩을 할 수 있다.
2. 불필요한 타입변환을 하지 않아도 된다. ( 프로그램 성능 향상 )
제너릭 클래스를 만드는 방법
형식)
Class 클래스명<제너릭타입글자> {
제너릭타입글자 변수명; // 변수선언에 제너릭을 사용할 경우
...
제너릭타입글자 메서드명(){ // 반환값이 있는 메서드에서 사용
...
return 값;
}
...
}
-- 제너릭 타입글자 --
T => Type
K => Key
V => Value
E => Element(자료구조에 들어가는 항목들을 나타날 때 사용)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | package kr.or.ddit.basic; class NonGeneric { private Object val; public Object getVal() { return val; } public void setVal(Object val) { this.val = val; } } class MyGeneric<T>{ private T val; public T getVal() { return val; } public void setVal(T val) { this.val = val; } } public class T02_GenericTest { public static void main(String[] args) { NonGeneric ng1 = new NonGeneric(); ng1.setVal("가나다라"); NonGeneric ng2 = new NonGeneric(); ng2.setVal(100); String rtnNg1 = (String)ng1.getVal(); System.out.println("문자열 반환값 rtnNg1 => " + rtnNg1); Integer irtnNg2 = (Integer)ng2.getVal(); System.out.println("정수 반환값 irtnNg2 => " + irtnNg2); System.out.println(); MyGeneric<String> mg1 = new MyGeneric<String>(); MyGeneric<Integer> mg2 = new MyGeneric<>(); mg1.setVal("우리나라"); mg2.setVal(500); rtnNg1 = mg1.getVal(); irtnNg2 = mg2.getVal(); System.out.println("제너릭 문자열 반환값 : " + rtnNg1); System.out.println("제너릭 문자열 반환값 : " + irtnNg2); } } | cs |
'HighJava' 카테고리의 다른 글
17_Bounded Type Parameter(제한된 타입 파라미터) (0) | 2020.09.17 |
---|---|
16_GenericsMethod (1) | 2020.09.17 |
14_Args_가변형 인수 (0) | 2020.09.17 |
13_Properties (0) | 2020.09.17 |
12_전화번호부관리 (0) | 2020.09.17 |