📜  Java泛型-多个界限(1)

📅  最后修改于: 2023-12-03 15:16:36.037000             🧑  作者: Mango

Java泛型之多个界限

在Java泛型中,使用extends关键字可以限定泛型参数的类型。除了单个类型作为界限之外,Java还支持多个界限,即泛型参数必须是多个类型的子类或实现类。

语法
class MyClass<T extends 类型1 & 类型2 & ... & 类型n> {
    // ...
}

上面的代码中,T是泛型参数,extends后面的类型1 ~ 类型n是多个界限,用&符号隔开。表示泛型参数T必须是类型1~类型n的子类或实现类。

示例

下面是一个使用多个界限的示例:

class MyClass<T extends Number & Comparable<T>> {
    private T data;

    public void setData(T data) {
        this.data = data;
    }

    public T getData() {
        return data;
    }

    public boolean isEqual(T other) {
        return data.compareTo(other) == 0;
    }
}

在这个示例中,MyClass的泛型参数T必须既是Number类的子类,又实现了Comparable接口。其中,Number类是所有数字类型的超类,而Comparable接口表示这个类型可以进行比较。

总结

通过多个界限,Java泛型可以限制泛型参数必须同时满足多个条件,从而提高代码的类型安全性和可读性。好好利用这个特性,可以使代码更加严谨和清晰。