在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
對象中的值。