假设我有两节课.每个类都有一个参数.第一类的参数限制为第二类,反之亦然.但还有一项要求.此参数还必须由类本身进行参数化.最好通过示例解释:
public class Class1<T extends Class2<Class1>> {
...
}
public class Class2<T extends Class1<Class2>> {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,这种结构不起作用.编译告诉Type parameter Class2 is not within its bound.这是完全可以理解的,因为编译器无法解决这种无休止的递归.
但我想知道有什么优雅的方法可以通过通用获得想要的东西吗?
看起来我突然找到了答案.
public class Class1<T extends Class2<P, T>, P extends Class1<T,P>> {
}
public class Class2<T extends Class1<P, T>, P extends Class2<T, P>> {
}
Run Code Online (Sandbox Code Playgroud)
这完全是令人兴奋的,但似乎有效.