简单实例解读Java泛型

来源:互联网 发布:张卜天的翻译水平知乎 编辑:程序博客网 时间:2024/05/16 09:57

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

 

泛型类:Student.java

public class Student<T> {// 此处可以随便写标识符号,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<Integer> stuInteger = new Student<Integer>(a);stuInteger.showType();Integer i = stuInteger.getOb();///不同的对象调用相同的方法System.out.println("value= "+i);String www = "http://meirengo.taobao.com";//定义Student的一个String版本Student<String> stuString = new Student<String>(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 <T> Object findList(String queryString, T t);

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

原创粉丝点击