java - Java 中泛型的未知编译错误

标签 java eclipse compiler-errors eclipse-indigo

以下编译错误对我来说毫无意义,我希望有人能够阐明:

static public void main(String args[]) throws ZipException, IOException
{
    File file = new File("C:\\temp");
    ZipFile zip_file = new ZipFile(file);
    Enumeration<ZipEntry> entries = zip_file.entries();
}   

我收到以下错误:Type mismatch: cannot convert from Enumeration<capture#1-of ? extends ZipEntry> to Enumeration<ZipEntry>

为了编译上面的代码,我必须替换 entries使用泛型的声明 <? extends ZipEntry> 。为什么我必须这样做? ZipEntry 不是扩展了 ZipEntry 吗? (这不是完全正确吗?)为什么编译器会提示这一点?

如果有帮助,我正在使用 Java 7.03 和 Eclipse Indigo 64 位。

最佳答案

ZipFile.entries() 返回扩展 ZipEntry 类型的枚举,但不限于 ZipEntry 本身,因此您需要使用:

Enumeration<? extends ZipEntry> entries = zip_file.entries();

这允许在 ZipEntry 枚举中使用其他类型,例如 JarEntry 对象。

关于java - Java 中泛型的未知编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095840/

相关文章:

c++ - Qt : Error while compiling Qt 5.0.1 on Windows, Visual Studio 2010 (VS2010)

python - for循环中的问题(python)

visual-studio - Visual Studio 2015 中的后期绑定(bind)错误

java - 尝试将 JSON 字符串发送到 Android 客户端时出现 500 内部服务器错误 GAE?

java - 如何在 Eclipse 中启用索引下载以进行 Maven 依赖项搜索?

Java被连续字符分割

java - SharedPreferences 变量无法正常工作

java - 如何使用eclipse创建jar文件

java - 如何仅通过更改路径来移动同一存储中的文件? (安卓)

java - spring jpa crud 存储库在多线程环境中从数据库获取旧数据