作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个通用测试类,它对它测试的集合类型(在我的例子中是堆栈)是通用的。
设泛型的名称为S
(对于堆栈)。我有一个接口(interface) IStack<E>
我想要求 S
实现IStack<E>
.当我宣布我的类(class)为 class Test<S extends IStack> { ... }
,我收到警告:
IStack is a raw type, References ... should be parameterized.
class Test<S<E> extends IStack<E>>
导致语法错误
Syntax error on token '<', , expected
在 Java 中声明这种绑定(bind)的正确方法是什么?
最佳答案
我认为你需要两个通用参数,一个用于元素,另一个用于堆栈类型,即
class Test<E,S extends IStack<E>>
(或者 E extends SomeAncestorOfYourElements
如果需要的话)
关于绑定(bind)到类型扩展 T<E> 的 Java 泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159824/
我是一名优秀的程序员,十分优秀!