簡體   English   中英

Java泛型類型參數隱藏

[英]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>> {
    }
}

現在的問題是,如果我重新提名內部IJ ,我不確定IJ實際上是相同的類型。

不要使內部類參數化:

class Baz<I extends Bar & Comparable<I>> {
   class Foo {
   }
}

作為一個內部(非靜態嵌套)類, IBaz聲明中定義的仍然具有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM