Generic의 사전적 뜻을 찾아보면 포괄적인 이라는 뜻이 있다.
Generic을 사용하게 되면 컴파일할 때 컴파일러가 타입캐스팅을 해준다. 그렇기 때문에 타입만 다르고 코드의 내용이 같을 때 코드의 재사용성이 좋아진다.
제네릭 클래스 작성
class t1<T,S>{ //제네릭 클래스 t1, 타입 매게 변수 T와 S
T data;
S data2;
void set(T a,S s) {
data=a;
data2=s;
}
T getT() {
return data; //T타입의 값 리턴
}
S getS() {
return data2; //S타입의 값 리턴
}
}
public class test{
public static void main(String[] args) {
t1 t = new t1();
t.set(1,"aa");
System.out.println(t.getS());
System.out.println(t.getT());
}
}
제네릭 클래스 레퍼런스 변수 선언
제네릭 클래스의 레퍼런스 변수를 선언할 때는 다음과 같이 타입 매개 변수에 구체적인 타입을 적는다
public class test{
public static void main(String[] args) {
T1<String> ts = new T1<String>(); //<T>에 String으로 구체화
T2<Integer> ti = new T2<Integer>(); //<T>에 Integer로 구체화
}
}
구체적인 타입을 적어주게 되면 T1은 String문 다루는 클래스가 되고, T2는 int형만 다루는 클래스가 된다.
제네릭 메소드
public class test{
<T> void testMethod(T a){
System.out.println(a);
}
public static void main(String[] args) {
test t = new test();
t.testMethod("aa");
t.testMethod(100);
}
}
'프로그래밍 > 자바' 카테고리의 다른 글
자바 파일 입출력 과 입출력 스트림 (0) | 2019.02.27 |
---|---|
자바 Jsoup를 이용한 웹 크롤링 예제 (3) | 2019.02.25 |
자바 컬렉션(Collection)과 Iterator (0) | 2019.02.22 |
자바 인터페이스(interface) (0) | 2019.02.21 |
자바 추상 클래스(abstract) (0) | 2019.02.21 |