使用泛型和没使用泛型的区别
使用泛型的类
/** * 使用泛型的类 * @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);}}?运行的结果都一样