JAVA泛型浅谈

来源:互联网 发布:python列表转换成元祖 编辑:程序博客网 时间:2024/04/29 16:13

1.泛型类

用<T>表示该类接受泛型,里面的T是具体类型(类),但是不接受基本类型,一定需要包装类。也可以进行多个泛型设置,如class Info<T,V>。

 

2.泛型引用传递

  泛型对象作为引用参数在函数传递的时候,泛型指定的类型不能向上或向下进行转换;在参数中只能指定泛型声明时一致的类型,或者运用通配符?或者T等字母。

但是如果当fun()函数里面是多个参数的时候,每个参数泛型类型都用T的话,则两个参数的类型必须一致;而用“?”则可以不一致。

 

3.泛型受限上下限

<? extends A>,<? super A>分别表示该泛型类型设置具体类型时候,必须为A的子类或者A的父类;具体设置时候只需要在正常设置泛型的时候,用以上两个格式替换原先的<>即可;

 

4.泛型接口

接口实现有两种形式:

第一,先不具体定义泛型实现接口,子类继续用泛型,等到具体调用的时候在具体定义泛型类型;

第二,在实现接口的时候,直接给接口泛型定义具体类型,之后就可以在子类方法中直接用具体类型了;

 

5.泛型方法

泛型方法定义格式:[访问权限](static)<T>[返回类型][方法名](T t);

在方法中定义参数传递时候,可以通过以上方式定义,则T的具体类型根据传入参数的具体类型定义;如:

当然也可以去掉static后面的<T>,直接在参数中用通配符?来接收泛型引用,如:

注:只有在泛型具体定义是数字类型,才能在该方法内执行数字运算,否则,如果直接用<?>,将无法直接运行数字运算(因为无法确定具体类型)。

 

 

0 0
原创粉丝点击