泛型

来源:互联网 发布:淘宝蝶恋花亚麻线 编辑:程序博客网 时间:2024/05/13 00:49
自定义泛型:  自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。
 
 方法上自定义泛型:
 
  修饰符   <声明自定义的泛型>返回值类型    函数名(使用自定义泛型 ...){
 
  }

在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型。

 byte----> Byte
 short---> Short 
 int----> Integer
 long----> Long 
 
 double ----> Double 
 float -----> Float
 
 boolean-----Boolean
 char-------》 Character 
 
 方法泛型注意的事项:
  1. 在方法上自定义泛型,这个自定义泛型的具体数据类型是在调用该方法的时候传入实参时确定具体的数据类型的。
  2. 自定义泛型只要符合标识符的命名规则即可, 但是自定义泛型我们一般都习惯使用一个大写字母表示。  T Type  E Element

 泛型类:
 
泛型类的定义格式:

class 类名<声明自定义泛型>{

}
 
泛型类要注意的事项:
  1. 在类上自定义泛型的具体数据类型是在使用该类的时候创建对象时候确定的。
  2. 如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象的时候没有指定泛型的具体数据类型,那么默认为Object类型
  3.在类上自定义泛型不能作用于静态的方法,如果静态的方法需要使用自定义泛型,那么需要在方法上自己声明使用。

 泛型接口
泛型接口的定义格式: 
interface 接口名<声明自定义泛型>{

}

泛型接口要注意的事项:
1. 接口上自定义的泛型的具体数据类型是在实现一个接口的时候指定 的。
2. 在接口上自定义的泛型如果在实现接口的时候没有指定具体的数据类型,那么默认为Object类型。

需求: 目前我实现一个接口的时候,我还不明确我目前要操作的数据类型,我要等待创建接口实现类 对象的时候我才能指定泛型的具体数据类型。

如果要延长接口自定义泛型 的具体数据类型,那么格式如下:
格式:  
public class Demo4<T> implements Dao<T>{

}

泛型中通配符: ? 

? super Integer : 只能存储Integer或者是Integer父类元素。  泛型的下限
 
  ? extends Number : 只能存储Number或者是Number类型的子类数据。 泛型上限
//泛型的上限
public static void getData(Collection<? extends Number> c){

}

//泛型的下限
public static void print(Collection<? super Integer> c){

}




原创粉丝点击