Il mio codice non può convertire da E a E. Posso fare un cast per digitare E, ma sembra ridondante in questa fase. Il mio array è già dichiarato come E-type. Java Generics, Can not Convertire da 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();
}
}
}
compilatore, getta questo errore:
DataTypeDemo.java:23: tipi incompatibili trovato: E richiesto: E
Inserisci un esempio completo che consente ad altri di riprodurre il tuo errore. Altrimenti è improbabile che tu riceva aiuto. A proposito, hai controllato che non hai due classi chiamate "E" (in pacchetti diversi)? – sleske
Qualsiasi motivo per cui non si sta utilizzando un 'Elenco'? Array e generici non suonano molto bene insieme. –
@sleske: 'E' è un parametro di tipo sulla classe. In questo caso non esiste una classe chiamata "E". –