Java 泛型

来源:互联网 发布:看书的软件推荐 编辑:程序博客网 时间:2024/06/06 07:37

1.泛型的定义

泛型:可以代表任意类型的类型(定义时是任意的,使用时是限定的)

public class MyClass<T>{    //属性    public T field;    //构造    public MyClass(T t){        this.field=t;    }    //成员方法    public int method(T t){        if(t.getClass()==String.class){            return Integer.parseInt((String)t);        }else if(t.getClass()==int.class||t.getClass()==Integer.class){            return (Integer)t;        }else{            return 0;        }    }}

泛型只接受引用类型,所以int不能使用,用Integer


2.泛型的继承

public class MyClass2<T extends ParentClass>{}

T在使用时必须是包含c在内的子类


3.

1.泛型同样可以定义在方法上,作用范围在局部而不是全局。

public class MyClass3{    public <T> void  method(T t){        T a=t;        System.out.println(a);    }}

2.

List<? extends ParentClass> list=new ArrayList<ChildClass>();List<? super ChildClass> list=new ArrayList<ChildClass>();//<? super ChildClass>用于限制范围,限制后边的类型

3.

//这种写法是错误的List<? super ChildClass> list2=new ArrayList<Object>();list2.add("abc");//而如下写法就正确ArrayList<Object> list2=new ArrayList<Object>();list2.add("abc");List<? super ChildClass> list3=list2;System.out.println(list3.size());System.out.println(list3.get(0));

泛型规定的是输入规则,不是内部规则
泛型是安全控制手段,不改变实际业务代码(只是一个门卫的作用)

0 0
原创粉丝点击