阅读量:0
在Java中,extends
关键字用于限制泛型参数的类型范围。它有两个主要用途:
- 限制泛型参数必须是某个类的子类或实现某个接口。
- 限制泛型参数必须是某个类的子类或实现某个接口,同时还可以指定上界,即泛型参数必须是某个类的子类、实现某个接口或者是这个类的子类与另一个类的交集。
下面是使用extends
关键字的示例:
示例1:限制泛型参数必须是某个类的子类
public class GenericBox<T extends Number> { private T value; public void setValue(T value) { this.value = value; } public T getValue() { return value; } }
在这个例子中,GenericBox
类是一个泛型类,它的泛型参数T
必须是Number
类的子类。这意味着你可以创建一个GenericBox
对象来存储任何Number
类型的值,如Integer
、Double
等,但不能创建一个GenericBox
对象来存储非Number
类型的值。
示例2:限制泛型参数必须是某个类的子类,并指定上界
public class UpperBoundedGenericBox<T extends Number & Comparable<T>> { private T value; public void setValue(T value) { this.value = value; } public T getValue() { return value; } public int compareTo(UpperBoundedGenericBox<T> other) { return this.value.compareTo(other.value); } }
在这个例子中,UpperBoundedGenericBox
类是一个泛型类,它的泛型参数T
必须是Number
类的子类并且实现了Comparable<T>
接口。这意味着你可以创建一个UpperBoundedGenericBox
对象来存储任何Number
类型的值,并且可以使用compareTo
方法来比较两个UpperBoundedGenericBox
对象中的值。