Java 函数中的泛型通配符:上限和下限
在Java中,泛型通配符允许表示泛型类型,而不指定具体类型。上限通配符(<?extendsT>)表示类型参数T或其任何子类,允许接受列表中的子类数据。下限通配符(<?superT>)表示T或其任何超类,允许接受列表中的超类数据。通配符可用于实现可调整大小的带泛型的数组列表,允许处理各种类型和进行添加/删除操作。
在 Java 中,泛型通配符允许表示泛型类型,而不指定具体类型。上限通配符 ( extends T>) 表示类型参数 T 或其任何子类,允许接受列表中的子类数据。下限通配符 ( super T>) 表示 T 或其任何超类,允许接受列表中的超类数据。通配符可用于实现可调整大小的带泛型的数组列表,允许处理各种类型和进行添加/删除操作。

Java 函数中的泛型通配符:上限和下限
在 Java 中,我们可以使用通配符来表示泛型类型,允许我们在不指定具体类型的情况下使用泛型。本文将探讨上限和下限通配符,并通过实战案例展示其用法。
上限通配符
上限通配符 ( extends T>) 表示类型参数 T 或其任何子类。例如:
public staticdouble sum(List numbers) { double total = 0; for (T num : numbers) { total += num.doubleValue(); } return total; }
此函数可以接受任何 Number (如 Integer、Double) 或其子类的列表。我们可以安全地将任何满足 Number 约束的列表传递给此函数,如下所示:
Listints = List.of(1, 2, 3); double sumIntegers = sum(ints); // 编译通过
下限通配符
下限通配符 ( super T>) 表示类型参数 T 或其任何超类。例如:
public staticvoid process(List entities) { for (T entity : entities) { System.out.println(entity.getClass().getName()); } }
此函数可以接受任何 Number 的超类 (如 Object、Serializable) 的列表。我们可以安全地将任何满足 Number 超类约束的列表传递给此函数,如下所示:
List
实战案例
考虑一个可调整大小的数组列表,我们可以使用泛型通配符来实现它:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ResizableArrayList{ private List list; public ResizableArrayList() { this(new ArrayList<>()); } public ResizableArrayList(List super E> initialList) { list = new ArrayList<>(initialList); } public void addAll(List extends E> elements) { list.addAll(elements); } public void removeAll(List super E> elements) { list.removeAll(elements); } public List getList() { return list; } public static void main(String[] args) { ResizableArrayList numbers = new ResizableArrayList<>( Arrays.asList(1, 2, 3) ); numbers.addAll(Arrays.asList(4, 5, 6)); numbers.removeAll(Arrays.asList(2, 3)); System.out.println(numbers.getList()); // [1, 4, 5, 6] } }
这个可调整大小的数组列表可以处理任何类型 E,允许我们向列表中添加或从中删除各种对象。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















