java泛型之限定类型(Bounded Type)

限定类型(Bounded Type)是Java泛型中的一个概念,它允许你在定义泛型类型参数时设定一个边界,这个边界表明了泛型类型参数可以接受的类型范围。限定类型分为上界限定(Upper Bounded Wildcards)和下界限定(Lower Bounded Wildcards)。

上界限定(Upper Bounded Wildcards)

上界限定指定了类型参数必须是某个特定类的子类型,或者是这个特定类本身。在Java中,上界限定是通过关键字extends来表示的。这里的extends用于类和接口,表示泛型类型参数可以是这个类、这个接口或者它们的任何子类型。

语法
<T extends B>

这里,T是泛型类型参数,而B是上界,T必须是B或者B的子类型。

例子
public class Box<T extends Number> {
    private T t;

    public void set(T t) {
        this.t = t;
    }

    public T get() {
        return t;
    }
}

在这个例子中,类型参数T被限定为Number或其子类,如IntegerFloat等。

下界限定(Lower Bounded Wildcards)

下界限定指定了类型参数必须是某个特定类的父类型,或者是这个特定类本身。在Java中,下界限定是通过关键字super来表示的。这意味着泛型类型参数可以是这个类或者它的任何父类型。

语法
<T super B>

这里,T是泛型类型参数,而B是下界,T必须是B或者B的父类型。

例子

下界限定通常用于通配符类型而不是类型参数。例如:

public void addNumbers(List<? super Integer> list) {
    list.add(10);
}

在这个例子中,list的类型参数必须是Integer或其父类,如NumberObject

使用限定类型的好处

限定类型的主要好处是它提高了泛型的灵活性和安全性:

  1. 类型安全: 限定类型确保了泛型在使用时不会出现类型错误,因为编译器可以在编译时检查类型限制。

  2. 灵活性: 通过使用限定类型,你可以编写更加通用和灵活的代码,因为它允许你定义可以接受一组特定类型的泛型类或方法。

  3. API设计: 在设计泛型API时,限定类型可以帮助你指定泛型方法或类应该如何以及在什么范围内使用,这有助于调用者正确使用你的API。

总结来说,限定类型是Java泛型系统中一个强大的特性,它允许开发者编写出既安全又灵活的泛型代码。通过使用限定类型,开发者可以确保泛型类型参数满足特定的类型约束,从而提升代码的质量和健壮性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值