[英]Java generics type parameter hiding
我正在定義一個類:
class Foo<I extends Bar & Comparable<I>> {
}
編譯器抱怨I
被隱藏I
。 我想在第二時間I
出現在定義的范圍的第一個隱藏,仿佛可變I
可以分配給兩個不同的類型。 怎么做正確?
編輯:
這是一個內在階級。 完整的代碼可以是:
class Baz<I> {
class Foo<I extends Bar & Comparable<I>> {
}
}
現在的問題是,如果我重新提名內部I
到J
,我不確定I
和J
實際上是相同的類型。
不要使內部類參數化:
class Baz<I extends Bar & Comparable<I>> {
class Foo {
}
}
作為一個內部(非靜態嵌套)類, I
在Baz
聲明中定義的仍然具有Foo
意義,因為每個Foo
都有一個對其外部Baz
實例的隱式引用。
如果I
已經在外部類中定義了就這樣做了
public class Outer<I extends Bar & Comparable<I>> {
public class Foo<I> {
}
}
你不能在你的內心階級重新定義I
。 內部類的I
將不是外部類的I
,如果這是你想要的,那么,重命名它。
HTH
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.