我有一个通用测试类,该类在它要测试的集合(在我的情况下是堆栈)的类型上是通用的。
让通用类型的名称为S
(对于Stack)。我有一个接口IStack<E>
,我想要求S
来实现IStack<E>
。
当我宣布我的班级为class Test<S extends IStack> { ... }
,
我收到警告:
IStack是原始类型,应将References ...参数化。class Test<S<E> extends IStack<E>>
导致语法错误
令牌'
在Java中声明这种绑定的正确方法是什么?
最佳答案
我认为您需要两个通用参数,一个用于元素,另一个用于堆栈类型,即
class Test<E,S extends IStack<E>>
(或
E extends SomeAncestorOfYourElements
(如果需要))关于java - Java通用类绑定(bind)到扩展T <E>的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53159824/