泛型是jdk1.5的特性
泛型的好处:
1. 将运行时的异常提前至了编译时。
2. 避免了无谓的强制类型转换。
泛型注意事项:
泛型没有多态的概念,左右两边的数据类型要一致,或者是写一边的数据泛型。
自定义泛型:自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量
方法上自定义泛型:
格式
修饰符 <声明自定义泛型> 返回值类型 函数名(使用自定义泛型...){
}
Public <T>T run(T o){
}
泛型注意事项:在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型
方法上泛型注意事项:
1. 在方法上自定义泛型,这个自定义泛型的具体数据类型是在调用该方法的时候传入实参确定的具体的数据类型的
2. 自定义泛型只要符合标识符的命名规则即可,自定义泛型一般都用大写字母表示。
类接口使用泛型
泛型类定义格式:
Class 类名<声明自定义泛型>{
}
注意事项:
1. 在类上自定义泛型的具体数据类型是在使用该类的时候创建对象时候确定的。
2. 如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象的时候,没有指定泛型的具体数据类型,那么默认object类型。
3. 在类上自定义泛型不能作用于静态的方法,如果静态的方法需要使用自定义泛型,那么需要在方法上声明使用。、
泛型接口格式:
Interface 接口名<声明自定义泛型>{
}
泛型接口要注意的事项:
1. 接口上自定义的泛型的具体数据类型是实现一个接口的指定的
2. 在接口上自定义的泛型如果在实现接口的时候没有指定具体的数据类型,那么默认为object类型
如果要延长接口自定义泛型的具体数据类型的格式:
Public class 类名<T> implements dao<T>{
}
泛型的上下限:
泛型中的通配符<?>,通配符并不会单独的使用
泛型的下限 <? super 数据类型>
泛型的上限 <? extends 数据类型>