제네릭 ver 5.0부터 지원
제네릭은 데이터형을 정하지 않는것을 의미하고 데이터형은 값을 넘겨준후 데이터형이 결정된다.
package com.test0518;
class Demo2<T>{ //<T> 제네릭클래스 : 자료형이 결정되지 않은것이 있다.
private T n;
public void set(T t){
this.n = t;
}
public T get(){
return n;
}
}
public class Test2 {
public static void main(String[] args){
Demo2 ob1 = new Demo2(); //Object이용 : 오브젝트이용시 가져와 대입할때는 반드시 캐스팅
ob1.set("자바");
//ob1.set(200);//아래에서 런타임 오류
String s = (String)ob1.get(); //ob1.set(200); 의 경우 Integer형을 String로 캐스팅하려고 했기때문에...
System.out.println(s);
Demo2<Integer> ob2 = new Demo2<Integer>(); //제네릭이용
ob2.set(100);
Integer i = ob2.get();
System.out.println(i);
Demo2<Double> ob3 = new Demo2<Double>();
ob3.set(10.0);
Double d = ob3.get();
System.out.println(d);
}
}