java泛型

来源:互联网 发布:linux系统api接口 编辑:程序博客网 时间:2024/05/16 14:53

(1)创建集合时指定集合元素的类型,该参数化类型称为泛型,允许在定义类,接口,方法时使用类型形参。

 

(2)List<String> lstStr=new ArrayList<>();    //表示该List只能存储String类型的数据,当存储别的类型数据时,在编译时就会报错。

 

(3)自定义接口,类时使用的类型参数意义:

E - Element (在集合中使用,因为集合中存放的是元素)

 T - Type(Java 类)

 K - Key(键)

 V - Value(值)

 N - Number(数值类型)

-  表示不确定的java类型  类型通配符

 

(4)子类继承泛型父类时,父类不能再包含形参:

public class sun extends fu<T>   //错误

public class sun extends fu(String) //传入具体类型,正确

public class sun extends fu //不传入类型,正确

 

(5)类型通配符?

子类 sun

父类 fu

但List<sun>却不是List<fu>的子类型,所以不用把List<sun>当作List<fu>使用,则这个时候可以考虑使用List<?>,然后通过强制类型进行转换。当然还有一种更好的方法,即使用List<? extends fu> ,则可以传入继承fu类的子类,这个时候就可使用List<sun>


 

 

 

0 0