具有多个有界类型的逗号或 & 符号?
在 Java 中,在声明乘法限定类型时,逗号和 & 符号是否都有效?
class MyClass <T extends OtherInterface, SomeInterface>
class MyOtherClass <T extends OtherInterface & SomeInterface>
在 Java 中,在声明乘法限定类型时,逗号和 & 符号是否都有效?
class MyClass <T extends OtherInterface, SomeInterface>
class MyOtherClass <T extends OtherInterface & SomeInterface>
正如其他人所指出的,这:
class MyOtherClass <T extends OtherInterface & SomeInterface>
定义乘法有界类型参数。如果使用 ,则必须为其指定一个同时实现 和 的类型。MyOtherClass
OtherInterface
SomeInterface
但是,这不会定义乘法边界类型参数:
class MyClass <T extends OtherInterface, SomeInterface>
它定义了一个具有两个类型参数的泛型。第一个必须实现 。第二个可以是任何东西。它只是一样的OtherInterface
class MyClass <T extends OtherInterface, U>
除了您将其命名为 而不是 .(约定俗成,类型参数通常是单个大写字母,有时是大写字母和数字或短大写标识符。但编译器并不在乎。它不会查看标识符的形式来弄清楚您是否真的将其作为接口。SomeInterface
U
B2 和 B3 应为接口时,可以有多个边界。B1可以是简单的类或接口<T extends B1 & B2 & B3>