加强有界类型参数
有界类型参数允许你设置泛型类型参数的限制:
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> {
}