泛型通配符
泛型通配符
CAMELLIA!!! note 目录
泛型通配符
Java 泛型通配符(Wildcard)是泛型的一种重要特性,它在泛型的上下界(upper bound 和 lower bound)中起着关键作用,主要用于提升代码的灵活性和通用性。
Java 泛型通配符主要有以下三种:
- 无界通配符(Unbounded Wildcard):表示可以持有任意类型。使用
?
表示。 - 上界通配符(Upper Bounded Wildcard):表示类型的上限。使用
? extends T
表示。 - 下界通配符(Lower Bounded Wildcard):表示类型的下限。使用
? super T
表示。
1. 无界通配符(Unbounded Wildcard)
无界通配符表示任何类型的对象都可以匹配。适用于你不需要使用泛型参数的方法。
1 | public void printList(List<?> list) { |
2. 上界通配符(Upper Bounded Wildcard)
上界通配符用于限制泛型类型的上限。适用于你希望能使用泛型参数的方法,同时又希望泛型类型是某个类型/某个类型的子类或实现类。
1 | public void processList(List<? extends Number> list) { |
在上述示例中,List<? extends Number>
表示 Number
或其子类的集合。
3. 下界通配符(Lower Bounded Wildcard)
下界通配符用于限制泛型类型的下限。适用于你希望能添加泛型参数的方法,同时又希望泛型类型是某个类型/某个类型的父类。
1 | public void addNumbers(List<? super Integer> list) { |
在上述示例中,List<? super Integer>
表示 Integer
或其父类的集合。