在Java中,extends
關(guān)鍵字用于限制泛型參數(shù)的類(lèi)型范圍。它有兩個(gè)主要用途:
下面是使用extends
關(guān)鍵字的示例:
示例1:限制泛型參數(shù)必須是某個(gè)類(lèi)的子類(lèi)
public class GenericBox<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
在這個(gè)例子中,GenericBox
類(lèi)是一個(gè)泛型類(lèi),它的泛型參數(shù)T
必須是Number
類(lèi)的子類(lèi)。這意味著你可以創(chuàng)建一個(gè)GenericBox
對(duì)象來(lái)存儲(chǔ)任何Number
類(lèi)型的值,如Integer
、Double
等,但不能創(chuàng)建一個(gè)GenericBox
對(duì)象來(lái)存儲(chǔ)非Number
類(lèi)型的值。
示例2:限制泛型參數(shù)必須是某個(gè)類(lèi)的子類(lèi),并指定上界
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);
}
}
在這個(gè)例子中,UpperBoundedGenericBox
類(lèi)是一個(gè)泛型類(lèi),它的泛型參數(shù)T
必須是Number
類(lèi)的子類(lèi)并且實(shí)現(xiàn)了Comparable<T>
接口。這意味著你可以創(chuàng)建一個(gè)UpperBoundedGenericBox
對(duì)象來(lái)存儲(chǔ)任何Number
類(lèi)型的值,并且可以使用compareTo
方法來(lái)比較兩個(gè)UpperBoundedGenericBox
對(duì)象中的值。