Java基础之泛型

来源:互联网 发布:windows终端机 编辑:程序博客网 时间:2024/06/08 10:02

1.泛型的作用:

在泛型出现之前,集合存放的元素一定要指定具体的类型,限制了!jdk5.0以后,一般把运行时可能出现的异常提前到编译时。

jdk5.0之前:

ArrayList list = new ArrayList();

list.add(new Cat());

list.add(new Dog());

Cat cat = (Cat)list.get(0);

Cat cat2 = list.get(1); //有问题!!类型转换异常(ClassCastException),运行时异常!

----------------------------------------------------------------------------

jdk5.0以后

ArrayList<Cat> list = new ArrayList<Cat>();

list.add(new Cat());//OK

list.add(new Dog()); //有问题!在编译时报错

 

2.泛型类

格式:

class 类名<自定义的泛型类>{

}

注意:

1)在创建泛型类的类对象的时候,自定义泛型类的类型就确定!

2)在创建泛型类的类对象时可以指定自定义泛型类,默认为Object类型

实例:ArrayList<E>  就是一个泛型类


3.泛型方法

第一种: 使用泛型类的类型的泛型方法

格式:

class Demo<T>{

public void method1(T t){ //泛型方法

}

}

注意:

1)在创建泛型类对象的时候,泛型方法的泛型类型就确定了

实例: ArrayList 类 上的 addE e)方法就是这样的方法

 

第二种:使用自定义泛型的泛型方法

实例:Arrays 类的 asListT ...)就是一个自定义泛型的泛型方法!

 

两种方法都存在的实例:

ArrayList是一个泛型类, 里面的add()方法是使用泛型类上的泛型方法,

toArray() 方法是一个自定义的泛型方法

 

4.泛型接口

格式:

interface A<T>{

}

注意:在创建泛型接口的实现类的类对象时,泛型接口的类型确定

实例:Collection Map 都是泛型接口

0 0
原创粉丝点击