其实就是一种类型参数,主要用于某个类或接口中数据类型不确定时,可以使用一个标识符来表示未知的数据类型,然后在使用该类或接口时指定该未知类型的真实类型。
public class User<T> {
private T i;
private T z;
}
public class User<T,E> {//多种不同类型的情况下
private T x;
private E y;
}
1.泛型的类型必须为引用类型
2.设置泛型类型是没有继承关系的,必须用同一种类型
3.如果没有设置泛型类型,默认为Object类型
4.设置泛型时:可以 User<String,Integer> u1 = new User<>();
只写前面不写后面 这个称为钻石语法(jdk1.8之后才有的)
在User对象实例化的时候指定数据类型,int的是Integer,其他基本数据类型以此类推(因为没有指定泛型的类型时,默认的是Object类型,基本数据类型不是Object类的子类,所以要用对应的包装类)
因为集合中存储的类型是Object类型,即存储什么类型都可以,所以使用泛型来约束传入的值的类型