泛型笔记

------- android培训java培训、期待与您交流! ----------

泛型:jdk1.5版本以后出现的新特性,用于解决安全问题,是一个类安全机制。
好处:
   1.将运行期间出现问题呢classCastException,转移到来了编译时期,方便程序员解决问题。让运行事情问题减少,安全。
   2.避免出现强制转换麻烦。
泛型格式:通过<>来定义要操作的引用类型。
使用情况:
 通常在定义框架中很常见,只要见到<>就要定义型,<>用来修饰类型。
  当使用类型时,将集合中要存储的数据类型当做参数传递到<>即可。

泛型类:定义在类上
     当类中需要操作的引用数据类型不确定的时候,早期定义Object来完成扩展,现在定义泛型类来完成扩展

package com.day14.wd;
//早期没有泛型时,可以抽取方法,进行定义
class  Teacher{
}
class  worker{
    
}
class Tool{
    private Object obj;
    public void setObject(Object obj){
        
        this.obj=obj;
    }
    public Object getObject(){
        return obj;
    }
}
//泛型后:
class  Utils<QQ>{
    private QQ q;
    public void setObject(QQ q){
        this.q=q;
    }
    public QQ getObject(){
      return q;
    }
    
}
public class GenericDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         Tool tt=new Tool();
        tt.setObject(new worker());
        worker w=(worker) tt.getObject();
       

     
        Utils<Teacher> tc=new Utils<Teacher>();
        tc.setObject(new Teacher());//设置对象
        Teacher tr=tc.getObject(); //得到对象
    }

}

/*
  泛型类定义的泛型,在整个类中有效。泛型类的对象明确要操作的具体类型后,所有的操作的类型固定。
  为了让不同的方法可以操作不同的类型,而且类型还不确定,那么可以将泛型定义在方法上。
*/

package com.day14.wd;

class Util{
    public<T> void show(T t){
        System.out.println("show:"+t);
        
    };
    public<T> void  print(T t){
        System.out.println("show:"+t);
        
    };
}
public class GenericDemo2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
   Util dd=new Util();
   dd.show(new String("我要成功"));
   dd.show(new Integer(232));
   dd.print(new String("我一定要成功"));
   
    }

}

//特殊之处:静态方法不可以访问类上定义的泛型。如果,静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。定义在

修饰符和返回符之间 public static <T> void print(T t){};

-------------------?通配符-------------------
?通配符,可以理解为占位符
? extends E:可以接受E类型或者E的子类型,上限。
?  super E:可以接受E类型或者E的父类,下限。

------- android培训java培训、期待与您交流! ----------

posted @ 2012-09-30 23:34  昨天.今天.明天  阅读(388)  评论(0)    收藏  举报