- 泛型类
- 泛型方法
- 边界符extends,一般< T extends ConcreteType >用于支持通用T类型的方法调用,方法体中会用到T对象,而< ? extends Concrete >通配符限制类型是用来解决方法参数传递过程中泛型的不可协变性,也就是List
类型的参数不接受List 参数,但是List<? extends ParentClass>可以接受List 参数 - 通配符类型的PECS原则(Producer Extends, Consumer Super)
- Producer Extends, 指的是<? extends ConcreteType>,利用它,我们可以从list中get元素,而不能添加元素。原因是我们可以在取出的时候通过向上转型,而加入的时候却不能确认具体的类型是什么,我们不可能下转型或者兄弟类型转型。
- Consumer Super, 指的是<? super ConcreteType>,我们可以用它向list里面添加元素,而不能获取元素,原因是我们添加的东西可以向上转型,而获取的东西却不能向下转型。
- 类型擦除实现导致的问题
- 不能创建泛型数组
- 不能使用new关键字创建泛型类,可以通过反射实现
- 不能使用泛型来判断instanceof
- 参考文档
再探Java泛型
坚持原创技术分享,您的支持将鼓励我继续创作!