在Java中,泛型extends
关键字允许你限制泛型类型参数必须是某个类的子类或实现某个接口。这样可以提高代码复用性,因为你可以编写一个通用类或方法,它可以处理多种类型,而不仅仅是单一的类型。以下是如何使用泛型extends
来提高代码复用性的示例:
public class GenericBox<T extends Number> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public double doubleValue() {
return value.doubleValue();
}
public int intValue() {
return value.intValue();
}
}
在这个例子中,GenericBox
类可以用于任何Number
子类,如Integer
、Double
等,但不能用于非Number
类型。这样,你可以创建一个GenericBox
实例来存储任何数字类型的值,并使用相应的方法来获取其值。
public class GenericHelper {
public static <T extends Number> double add(T a, T b) {
return a.doubleValue() + b.doubleValue();
}
}
在这个例子中,add
方法接受两个类型为T
的参数,其中T
必须是Number
的子类。这样,你可以使用这个方法来添加任何数字类型的值,如Integer
、Double
等。
通过使用泛型extends
,你可以编写更通用、更灵活的代码,从而提高代码复用性。