在Java中,extends
关键字用于定义泛型的上界。它限制了泛型类型参数可以接受的实际类型。当使用泛型时,你通常会指定一个上界,以确保类型安全。
extends
关键字在泛型中的用法有两种情况:
- 限制泛型类型参数必须是某个类的子类或实现某个接口。
- 限制泛型类型参数必须是某个类的子类或实现某个接口,同时还可以指定多个上界。
以下是两种情况的示例:
情况1:限制泛型类型参数必须是某个类的子类或实现某个接口
public class GenericBox{ private T value; public void setValue(T value) { this.value = https://www.yisu.com/ask/value;> 在这个例子中,
GenericBox
类是一个泛型类,它接受一个类型参数T
,并且T
必须是Number
类的子类或实现Number
接口。这意味着GenericBox
可以用于任何Number
类型,如Integer
、Double
等,但不能用于非Number
类型。情况2:限制泛型类型参数必须是某个类的子类或实现某个接口,同时还可以指定多个上界
public class MultiBoundGeneric> { private T value; public void setValue(T value) { this.value = https://www.yisu.com/ask/value;> 在这个例子中,
MultiBoundGeneric
类是一个泛型类,它接受一个类型参数T
,并且T
必须是Number
类的子类或实现Number
接口,同时T
还必须是Comparable
接口的实现类。这意味着MultiBoundGeneric
只能用于实现了Number
和Comparable
接口的类型,如Integer
、Double
等。