泛型:泛型的目的
(1)保证数据的一致性
(2)操作统一化
(3)具有普适性
语法格式:
<无意义字符>
一般放<T> <E> <?>
自定义泛型在方法中的定义(该方法具有普适性)
语法格式:
权限修饰符 [static] <无意义占位符> 返回值类型 方法名字(参数类型){
}
public <T> void get (T t){}
方法可以直接调用,都需要返回值;实参可以有各种类型,但不能相加,布尔类型数据不能相加,只能逐个打印。
- 自定义泛型在类中的使用
语法格式:
class 类名<无意义占位符>{
属性
方法(带有泛型的)
}
注意:在成员方法中不能带<T>,一旦带了,方法约束的数据和当前类的约束就不一样了。
在泛型类中,带有泛型的静态方法和类的泛型没关系。可以写静态的方法,但没意义。
3.自定义泛型在接口中的使用
Interface A <T>{
}
- 接口带有泛型,则实现类必须带有泛型
4.自定义泛型在接口中的使用
Abstract 类名<T>{
}
权限修饰符:
修饰符名称 | 当前类 | 同包其他类 | 不同包子孙类 | 不同包其他类 |
public | 可以 | 可以 | 可以 | 可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
default | 可以 | 可以 | 不可以 | 不可以 |
private | 可以 | 不可以 | 不可以 | 不可以 |