Javagenerics类型参数隐藏
我正在定义一个类:
class Foo<I extends Bar & Comparable> { }
编译器抱怨I
被I
隐藏了。 我猜我第二次出现在定义中是隐藏在第一个范围内,好像变量I
可以分配给两个不同的类型。 怎么做得对?
编辑:
这是一个内在阶级。 完整的代码可以是:
class Baz { class Foo<I extends Bar & Comparable> { } }
现在的问题是,如果我重新提名内部I
到J
,我不确定I
和J
实际上是相同的类型。
不要使内部类参数化:
class Baz> { class Foo { } }
作为一个内部(非静态嵌套)类, I
在Baz
声明中定义的仍然具有Foo
意义,因为每个Foo
都有一个对其外部Baz
实例的隐式引用。
如果I
已经在外部类中定义了就这样做了
public class Outer> { public class Foo { } }
你不能在你的内心阶级重新定义I
。 内部类的I
将不是外部类的I
,如果这是你想要的,那么,重命名它。
HTH