泛型是1.5之后出现的新特性。
好处是将运行时可能会发生的异常ClassCastException,转换成编译失败,程序员可以解决掉问题,而且避免了强转的麻烦。
只要带有<>的类或者接口,在使用的时候都要给<>中传递一个具体的引用数据类型。
泛型限定:
上限: ?extends E :可以接受E或E的子类对象
下限: ? super E :可以接受E或E的父类对象
上限使用的时候: 往集合中添加元素,既可以添加E类型对象,又可以添加E的子类对象。 因为再往出取的时候,E类型既可以接受本类型,又可以接收E的子类型对象。
下限使用的时候: 当从集合当中获取元素的时候,既可以用当前元素接收,又可以用父类型接收。
泛型的细节:
泛型到底什么类型取决于调用者传入的类型,若没传,则是Object类型。
使用带泛型的类创建对象是等式两边指定的类型必须一致。