加强有界类型参数

有界类型参数允许你设置泛型类型参数的限制:

class SomeClass {

}

class Demo<T extends SomeClass> {

}

但是类型参数只能绑定到单个类类型。

接口类型可以绑定到已经具有绑定的类型。这是使用 & 符号实现的:

interface SomeInterface {

}

class GenericClass<T extends SomeClass & SomeInterface> {

}

这加强了绑定,可能需要从多种类型派生类型参数。

可以将多种接口类型绑定到类型参数:

class Demo<T extends SomeClass & FirstInterface & SecondInterface> {

}

但应谨慎使用。多个接口绑定通常是代码异味的标志,表明应该创建一个新类型,它充当其他类型的适配器:

interface NewInterface extends FirstInterface, SecondInterface {

}

class Demo<T extends SomeClass & NewInterface> {

}