在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
,并且T
必須是Number
類的子類或實現Number
接口。這意味著GenericBox
可以用于任何Number
類型,如Integer
、Double
等,但不能用于非Number
類型。
情況2:限制泛型類型參數必須是某個類的子類或實現某個接口,同時還可以指定多個上界
public class MultiBoundGeneric<T extends Number & Comparable<T>> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
在這個例子中,MultiBoundGeneric
類是一個泛型類,它接受一個類型參數T
,并且T
必須是Number
類的子類或實現Number
接口,同時T
還必須是Comparable<T>
接口的實現類。這意味著MultiBoundGeneric
只能用于實現了Number
和Comparable<T>
接口的類型,如Integer
、Double
等。