我有一个通用测试类,该类在它要测试的集合(在我的情况下是堆栈)的类型上是通用的。

让通用类型的名称为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/

10-11 12:19