【发布时间】:2015-07-29 16:52:50
【问题描述】:
以下是我的代码
class A<B2 extends B, A2 extends A<B2, A2>> {
C<B2, A2> c;
void test() {
c.acceptParameterOfTypeA(this);
}
}
class B {
}
class C<B2 extends B, A2 extends A<B2, A2>> {
void acceptParameterOfTypeA(A2 a) {
}
}
错误发生在c.acceptParameterOfTypeA(this);。
错误是
类型C中的方法acceptParameterOfTypeA(A2)不是 适用于论点(A)
据我所见,acceptParameterOfTypeA 方法需要一个 A 类型的参数,而在给出错误的行处的 this 是 A 类型的。
我做错了什么?如何解决这个问题?
如果它很重要,我正在使用 Java8
【问题讨论】:
-
class B<A2 extends A> {那里,A参数对我来说看起来很原始。 -
@EpicPandaForce 是的,我想我可能拿错了例子。会尝试看看我是否可以改进。谢谢!
-
@EpicPandaForce 谢谢,我用我面临的实际情况更新了这个问题。
-
您可以将问题简化为:
class A<A2 extends A<A2>> { void test() { A2 x = this; } }