泛型的使用
public class Fan<T> {
private Integer id;
private String username;
private List<T> data;
//Fan前边的这个T 与后边传入参数的T相对应、
//Fan后边的这个T代表的是返回值的类型
public <T> Fan<T> add(List<T> date){
Fan<T> tFan = new Fan<>();
return tFan;
}
泛型通配符:
?:代表任意的数据类型。
使用方式:
不能创建对象使用
只能作为方法的 参数使用
通配符高级使用—受限泛型
之前设置泛型的时候,实际上是可以任意设置的,只要是类就可以设置。但是java的泛型中可以指定一个泛型的上限和下限。
泛型的上限:
-
格式:
类型名称<? exends 类> 对象名称
-
意义:
只能接收该类型及其子类
-
T extends 类 : 用在类上
表示T只能是类或类的子类。?extends 类: 用在方法上
表示只能接受类及其子类的泛型类。
泛型的下限:
- 格式:
类型名称 <? super 类>对象名称
- 意义:
只能接收该类型及其父类型
比如:现已知Object类,String类,Number类,Integer类,其中Number类是Integer的父类
public interface UserDao<T extends Commons> {
}