我有一个通用类的层次结构,想将我的通用类参数的超类的通用类参数用作方法参数(我知道这听起来很混乱,请看下面的代码)
class Superclass<ID> { ... }
class MyClass<T extends Superclass<ID>, ID> {
T useId(ID id) { ... }
}
以上方法有效,但是我想摆脱第二个泛型类参数(ID
),因为它已经在T的某个位置了。有没有一种方法可以获取和使用超类的ID作为方法参数?
答案 0 :(得分:1)
让我们首先这样更改代码:
class MyClass<T extends Superclass<ID>, ID>
现在您具有泛型设计的类型安全性。 如果您使用“?”,则SuperClass中的ID在MyClass中是不同的(仅使用相同名称的占位符)。现在,您不想摆脱ID,因为这是您课程的编译时安全性。