`
chasewade
  • 浏览: 13898 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用泛型和没使用泛型的区别

    博客分类:
  • J2se
 
阅读更多

使用泛型的类

/**
 * 使用泛型的类
 * @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);
	}
}

 运行的结果都一样

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics