简单实例解读Java泛型

        今天复习了一下泛型的使用方法,现在用非常简单的java代码解读Java泛型原理。

 

泛型类:Student.java

public class Student {// 此处可以随便写标识符号,T是type的简称

	private T ob;//定义泛型成员变量

	public Student(){//无参构造方法
		super();
	}
	
	public Student(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());
	}
}

 

测试类:Test.java

public class Test {

	
	public static void main(String[] args) {
		Integer a = 66;
		//定义Student的一个Integer版本
		Student stuInteger = new Student(a);
		stuInteger.showType();
		Integer i = stuInteger.getOb();///不同的对象调用相同的方法
		System.out.println("value= "+i);
		
		String www = "http://meirengo.taobao.com";
		//定义Student的一个String版本
		Student stuString = new Student(www);
		stuString.showType();
		String s = stuString.getOb();///不同的对象调用相同的方法
		System.out.println("value= "+s);
		
		Student stuLong = new Student(new Long(33));//不使用尖括号指定泛型类型
		stuLong.showType();
		Long ll = (Long) stuLong.getOb();//不指定泛型类型的需要强制转换(因为不指定泛型类型默认为Object类型)
		System.out.println("value= "+ll);
	}

}

 

泛型的优点:

1、类型安全:设置了泛型类型,就只能输入指定类型的数据。

2、消除强制类型转换:参照上面test实例,防止类型转换错误
 

不仅有泛型类,还有泛型方法,eg:

public Object findList(String queryString, T t);

调用方式:return (List)xxx.findList("findAll",yyy);

你可能感兴趣的:(java,ee,java,se)