绑定(bind)到类型扩展 T<E> 的 Java 泛型类

标签 java generics interface

我有一个通用测试类,它对它测试的集合类型(在我的例子中是堆栈)是通用的。

设泛型的名称为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/

相关文章:

java - 如何使用具有异构 View 类型的项目触摸助手?

java - 运行 PlayN 游戏的多个实例时出现奇怪的错误

C#泛型问题——泛型接口(interface)约束

java - 在java中通过反射调用通用方法

SystemVerilog 中具有参数化元素数量的接口(interface)实例数组

Go:接口(interface)作为返回值

android - 接口(interface)观察者模式 : null object reference

java - 使用 HTML 表单文本输入框在 SQL 数据库中添加/编辑数据

Java:导出到 JAR 后路径名不起作用

数组的 Swift 5 动态类型