Mi código no se puede convertir de E a E. Puedo hacer un molde para escribir E, pero parece redundante en esta etapa. Mi array ya está declarado como E-type. Genéricos de Java, no se puede convertir de E a E
import java.util.Iterator;
public class DataTypeDemo<E>
{
private E[] data = (E[]) new Object [10];
public MyIterator newIterator()
{
return new MyIterator();
}
private class MyIterator<E> implements Iterator<E>
{
private int location;
public boolean hasNext()
{
return location < data.length;
}
public E next()
{
return (data[location++]); // error here
}
public void remove()
{
throw new UnsupportedOperationException();
}
}
}
compilador, lanza este error:
DataTypeDemo.java:23: tipos incompatibles encontrado: E requerido: E
Por favor, publique un ejemplo completo que permita a otro reproducir su error. De lo contrario, es poco probable que obtenga ayuda. Por cierto, ¿verificaste que no tienes dos clases llamadas "E" (en diferentes paquetes)? – sleske
¿Alguna razón por la que no está utilizando una 'Lista'? Arrays y genéricos realmente no juegan muy bien juntos. –
@sleske: 'E' es un parámetro de tipo en la clase. No hay una clase real llamada 'E' en este caso. –