2013-08-16 46 views
1

在Java中,方法簽名Enumeration<? extends ZipEntry>的含義是什麼?在Java中,方法簽名枚舉<?是什麼?擴展ZipEntry>是什麼意思?

它定義了一個泛型枚舉類型。我只是不知道?的含義。看來這是說正在定義一個新類型,並且所有編譯器需要知道的是,新類型擴展了ZipEntry。這是否準確?

這是代碼的情況下:

for (Enumeration<? extends ZipEntry> e = zipfile.entries(); 
     e.hasMoreElements(); fileNumber++) 
{ 
    // ...etc... 
} 

如果我講英語Enumeration<? extends ZipEntry>,你會這樣說?

謝謝!

+3

擴展ZipEntry的任何類型的枚舉。 –

+1

對你來說,最好的辦法是閱讀一本關於泛型的好教程。 –

+1

@Marko:是的,你可能是對的。無論如何,一本關於Java泛型的書。雖然,我的確瞭解了泛型的概念。這更像是一個語法問題。 – quakkels

回答

3

它的意思是「Enumeration的某種明確的,但未指定的類型,擴展ZipEntry」。

請參閱:Oracle的關於泛型的教程中的Upper Bounded Wildcards,以及Angelika Langer's Java Generics FAQ

+0

好的,所以這表明一個已經存在的類型,具體來說,它不是一個匿名類型或類似的東西? – quakkels

+0

@quakkels一個匿名類型不能被引用,它沒有名字。 – m0skit0

+0

是的,我想是這樣的:-) – quakkels