今天我注意到,如果你在 Java 中声明以下内容:
public interface Foo<T extends Foo> {}
然后你可以递归地声明以下类型的对象:
Foo<Foo<Foo<Foo<Foo<Foo<Foo... ...>>>>>> foo;
你永远不会读完它,但你永远无法满足警告:“Foo是一个原始类型。对类型Foo的引用应该参数化。非常好奇。
最佳答案
该模式通常类似于 interface Foo<T extends Foo<T>>
,然后Bar implements Foo<Bar>>
。
枚举是一个典型的例子。基类是java.lang.Enum<E extends Enum<E>>
,以及 enum MyEnum
真的是class MyEnum extends Enum<MyEnum>
关于java - java泛型中的无限嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25346331/