有没有一种方法可以在Java中定义一个类似于下面的C#泛型constratint的泛型约束?在Java中对类的双重泛型约束:extends ConcreteClass&I
class Class1<I,T> where I : Interface1, Class2 : I
我试图做这样的:
class Class1<I extends Interface1, T extends I & Class2>
但是,编译器会抱怨的“等级2”的部分:类型参数不能其次是其他界限。
有没有一种方法可以在Java中定义一个类似于下面的C#泛型constratint的泛型约束?在Java中对类的双重泛型约束:extends ConcreteClass&I
class Class1<I,T> where I : Interface1, Class2 : I
我试图做这样的:
class Class1<I extends Interface1, T extends I & Class2>
但是,编译器会抱怨的“等级2”的部分:类型参数不能其次是其他界限。
我可以看到解析Java代码的最简单的方法是使等级2的接口。
您不能约束一个类型参数来扩展多个类或类型参数。此外,你不能在这里使用超级。
此代码编译罚款这里:
interface Interface1 {}
class Class2 {}
class Class1<I extends Interface1, T extends Class2 & Interface1> {}
为什么你需要的当你只承担接口1反正我类型呢? (你不会知道你的班上任何有关我比它延伸接口1)
`extands`?你的意思是“扩展”吗? - C#行也没有对T型进行任何限制,也许你犯了一个错误? – BrainSlugs83 2015-04-25 21:01:43
这是一个错字,这是Java。 – axk 2016-01-06 14:32:18