泛型
1.什么是泛型:
在jdk1.5以后引入的特殊编程方式
表示一个在类、接口、方法中广泛类型的类型参数
2.泛型声明:
格式:<标识符>,注意:标识符为任意的一个大写字母
1)声明在方法中的泛型:泛型方法
public <标识符> void fun(){} //在返回值以前声明泛型
2)声明在类红的泛型:泛型类
public class 类名<>{}
3) 声明在接口中的泛型:泛型接口
public interface 接口名<>
3.泛型的作用域:只能在声明的位置使用
4.泛型的实际数据类型取决于传入的类型,例如:
5.注意事项
1)使用泛型不能声明静态属性(不能用static修饰:因为静态属性不依赖对象,而泛型属性是依赖对象),不能声明常量属性
2)使用泛型只能声明数组,不能初始化数组(因为数组在初始化的时候,需要设定默认值,需要给定数据类型,这样正好和泛型机制相悖)
3)不能声明重载方法(因为重载方法要求方法的参数列表不同)
4)不同类型的泛型类创建的对象,不能互相赋值(因为泛型依赖对象数据类型,对象的数据类型不同,就不是同一个类)
6.受限泛型
1)<? super T>:传入的类型是T类或T类的父亲(问号表示占位符)
2)<? extends T>:T 或是T的子类
3)<?>:表示任意类型