使用泛型的类
/**
* 使用泛型的类
* @author chase
*
* @param <T>
*/
class Gen<T> {
private T ob; //定义泛型的成员变量
public Gen(T ob) {
this.ob = ob;
}
public T getOb() {
return ob;
}
public void setOb(T ob) {
this.ob = ob;
}
public void showType() {
System.out.println("T的实际类型是:" + ob.getClass().getName());
}
}
public class GenDemo {
public static void main(String args[]) {
/** 定义泛型类Gen的一个Integer版本 */
Gen<Integer> intOb = new Gen<Integer>(88);
intOb.showType();
int i = intOb.getOb();
System.out.println("value = " + i);
System.out.println("============================");
/** 定义泛型类Gen的String版本 */
Gen<String> strOb = new Gen<String>("Hello Chase!");
strOb.showType();
String s = strOb.getOb();
System.out.println("value = " + s);
System.out.println("============================");
/** 定义泛型类Gen的double版本 */
Gen<Double> dubOb = new Gen<Double>(3.1415926);
dubOb.showType();
Double d = dubOb.getOb();
System.out.println("value = " + d);
}
}
没使用泛型的类
/**
* 未使用泛型的GenDemo
* @author Administrator
*
*/
class Gen2 {
private Object Ob; //定义一个普通类型成员
public Gen2(Object ob) {
this.Ob = ob;
}
public Object getOb() {
return Ob;
}
public void setOb(Object ob) {
Ob = ob;
}
public void showType() {
System.out.println("T的 实际类型是:" + Ob.getClass().getName());
}
}
public class GenDemo2 {
public static void main(String[] args) {
/** 定义类Gen2的一个Integer版本 */
Gen2 intOb = new Gen2(new Integer(88));
intOb.showType();
int i = (Integer)intOb.getOb();
System.out.println("value = " + i);
System.out.println("=================");
/** 定义类Gen2的一个String版本 */
Gen2 strOb = new Gen2(new String("Hello Chase!"));
strOb.showType();
String s = (String)strOb.getOb();
System.out.println("value = " + s);
}
}
运行的结果都一样