Я хотел создать Iterator для универсального класса, который работал нормально. Я думал, что итератор попытается выполнить итерацию с использованием TypeParameter универсального класса, но, видимо, это не так, потому что Eclipse сообщает мне, что объект ожидается.Ява: несоответствие типов с итератором класса generic
Если кто-то знает, что я сделал неправильно, я был бы очень счастлив.
public class GenericClass<T extends OtherClass> implements Comparable, Iterable
{
private ArrayList<T> list = new ArrayList<T>();
[...]
@Override
public Iterator<T> iterator()
{
Iterator<T> iter = list .iterator();
return iter;
}
[...]
}
public class Main
{
public static void main(String[] args)
{
GenericClass<InstanceOfOtherClass> gen = new GenericClass<InstanceOfOtherClass>("Aius");
for(InstanceOfOtherClass listElement : gen) // This is the problem line; gen is underlined and listElement is expected to be an Object
{
System.out.println(listElement.getName());
}
}
}
Прочтите предупреждения компилятора – SLaks