2011-05-06 58 views
3

我把自己了解最新的Java泛型(工作了遗留代码过长...的时间与JDK 1.4 ... 1.3偶数)我不太明白这一点:Java泛型 - 我如何阅读:Foo <T extends Bar <?延伸Foo <T> >>?

public class Foo<T extends Bar<? extends Foo<T>>> { ... 

哪里FooBar是两个泛型类。

这是如何理解,因为我不完全明白它?

我读了很多关于Java泛型的知识,但这是一个小小的思维弯曲(至少对于我来说是一个初学者)。

+0

[创建循环泛型引用]的可能重复(http://stackoverflow.com/questions/2567595/creating-circular-generic-references) – 2011-05-06 17:00:25

回答

4

那么,Foo必须由参数TT本身必须扩展Bar<U>某些类型U,使U延伸Foo<T>。 (在这里“扩展”可以表示“与此类型相同”。)在这里我使用U作为任意类型的名称,但是在声明中未命名,因此?

你说得对,这有点令人头脑发热,但通常在这种事情出现的情况下,最终会使事情变得更简单。如果你可以举一个具体的例子,我们可以更有用地解释一下。

相关问题