泛型定义
泛型出现中jdk5.0以后,之前当某个属性不知道用什么类型的时候,是用Object来申明,泛型就是为了解决这种固定的写法,所有引入泛型.
- Demo
/**
*age年龄 可能 用 1 1.6f 两岁 三种表达方式 所以需要泛型优化
*
**/
public class Children<T>{
private String name ;
private T age;
}
大家试想,没有泛型的话,你要打印age你都需要对类型做判断再输出。有了泛型,new出来就是对应泛型接收。
泛型的基本概念术语
- 申明在类名上的泛型T是形参
- 当泛型传入实际类型比如integer就是实参
- 不同泛型类不能转换
- 泛型可以只申明一边定义,一般不采纳
通配符
- 比如在方法传带泛型的参数时候,你不知道要传进来的对象的泛型是什么类型,你就需要通配符?来代表泛型。
- 通配符的情况下,只能输出,不能修改
比如set方法,你不知道什么类型没办法赋值
泛型上下限
这里有两个关键字 super extends
上限《?extends number》
下限《?super Integer》