Java_总结二十二(自定义泛型)

自定义泛型

  第一种形式

 

import java.util.*; 
//限制了T必须是List或者它的子类型,不要用implements关键字
class MyGenerics<T extends List>{//将来在擦除T的时候,必须是List或其子类型    
    private T field;
    public void setField(T f){
        this.field = f;
        //获得f的类型
        System.out.println(f.getClass());
    }
    public T getField(){    return this.field;    }
    public static void main(String uu[]){
        MyGenerics<List> mm1 = new MyGenerics<List>();
        MyGenerics<ArrayList> mm2 = new MyGenerics<ArrayList>();
        //MyGenerics<Map> mm3 = new MyGenerics<Map>();    //error,因为Map不是List或者它的子类
    }
}

 

 

  第二种形式

 

class MyGenerics01<T>{
    private T field;
    public void setField(T f){
        this.field = f;
        //获得f的类型
        System.out.println(f.getClass());
    }
    public T getField(){    return this.field;    }
    public static void main(String uu[]){
        MyGenerics01<Integer> mm1 = new MyGenerics01<Integer>();
        mm1.setField(1);
        
    }
}

 

posted @ 2017-05-16 12:34  Java_皮卡丘漏电  阅读(128)  评论(0编辑  收藏  举报