java中上限和下限泛型用于限制泛型变量的类型。上限泛型(extends)指定泛型变量必须是特定类的子类或其本身,而下限泛型(super)指定泛型变量必须是特定类的超类或其本身。上限泛型示例:限定 myboundedbox<t extends animal> 只能存储 animal 或其子类。下限泛型示例:限定 myboundedbox<t super number> 只能存储 number 或其超类。

Java 中的上限和下限泛型
Java 中的泛型是一种安全类型化机制,它允许我们在编写代码时指定数据类型。上限和下限泛型是泛型的两种类型,它们用于对可以存储在泛型中的值的类型施加限制。
上限泛型
立即学习“Java免费学习笔记(深入)”;
上限泛型使用 extends 关键字,并指定特定类的上限或通用超类。例如:
class MyBoundedBox<T extends Animal> {
private List<T> animals;
public void add(T animal) {
animals.add(animal);
}
}在这个例子中,MyBoundedBox 类限制了其泛型参数 T,以便它只能是 Animal 类或其子类。
下限泛型
下限泛型使用 super 关键字,并指定特定类的下限或通用超类。例如:
class MyBoundedBox<T super Number> {
private List<T> numbers;
public void add(T number) {
numbers.add(number);
}
}在这个例子中,MyBoundedBox 类限制了其泛型参数 T,以便它只能是 Number 类或其超类。
实战案例
以下是一个实战案例,展示了如何使用上限和下限泛型:
public class BoundedGenericsDemo {
public static void main(String[] args) {
MyBoundedBox<Dog> dogBox = new MyBoundedBox<>();
dogBox.add(new Dog("Max"));
MyBoundedBox<Number> numberBox = new MyBoundedBox<>();
numberBox.add(10);
numberBox.add(3.14);
}
}输出:
Max 10 3.14
在这个案例中,我们创建了两个受限的泛型 dogBox 和 numberBox。dogBox 只能存储 Dog 及其子类,而 numberBox 只能存储 Number 及其超类。
以上就是Java 中的上限和下限泛型有什么区别?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号