Java泛型通配符:上界与下界,简单理解
Java泛型通配符(`?`)用于统一处理不同类型的泛型集合(如`List<Integer>`、`List<Double>`),避免重复定义方法。通配符分两种: **上界通配符(`? extends T`)**:元素是`T`的子类或`T`本身。特点是**只能获取元素**(返回类型为`T`),不可添加元素(编译器无法确定具体子类),适用于读取集合元素(如打印`Number`及其子类集合)。 **下界通配符(`? super T`)**:元素是`T`的父类或`T`本身。特点是**只能添加元素**(`T`或其子类),不可获取具体类型(只能返回`Object`),适用于添加元素(如往`Number`父类集合中添加子类元素)。 核心区别:上界“只读”、下界“只写”,需根据场景选择,避免过度使用通配符或误用`T`。
阅读全文