java异常与泛型_java-通配符和泛型错误

  • Post author:
  • Post category:java


下面的代码是一次性的,使枚举在新的foreach循环中工作是一个失败的想法,但是由于我一直遇到泛型和通配符的问题,因此我希望对其进行编译.无论出于什么原因,我都看不出如何解决它.

那么,需要进行哪些更改才能进行编译?

import java.util.Enumeration;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

public class Main

{

private ZipFile zipFile;

public Set entries()

{

final Set names;

final Enumeration extends ZipEntry> enumeration;

final IterableEnumeration extends ZipEntry> iteratable;

names = new HashSet();

// zipFile.entries() returns “Enumeration extends ZipEntry>”

enumeration = zipFile.entries();

// this line won’t compile

iteratable = new IterableEnumeration extends ZipEntry>(enumeration);

for(final ZipEntry entry : iteratable)

{

if(!(entry.isDirectory()))

{

names.add(entry.getName());

}

}

return (names);

}

}

class IterableEnumeration

implements Iterable

{

private final Enumeration enumeration;

public IterableEnumeration(final Enumeration e)

{

enumeration = e;

}

public Iterator iterator()

{

final EnumerationIterator iterator;

// yeah cannot do this since an Iterable is supposed to work multiple times on the same object and Enumeration is descructive…

iterator = new EnumerationIterator(enumeration);

return (iterator);

}

}

class EnumerationIterator

implements Iterator

{

private final Enumeration enumeration;

public EnumerationIterator(final Enumeration e)

{

enumeration = e;

}

public boolean hasNext()

{

return (enumeration.hasMoreElements());

}

public T next()

{

return (enumeration.nextElement());

}

public void remove()

{

throw new UnsupportedOperationException(“Cannt remove via an Enumeration”);

}

}

错误是:

Main.java:26: unexpected type

found : ? extends java.util.zip.ZipEntry

required: class or interface without bounds

iteratable = new IterableEnumeration extends ZipEntry>(enumeration);

^

1 error



版权声明:本文为weixin_42411715原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。