У меня проблема при компиляции универсального класса с внутренним классом. Класс расширяет общий класс, а также внутренний класс.
Здесь реализован интерфейс:
public interface IndexIterator<Element>
extends Iterator<Element>
{
...
}
Общий суперкласс:
public abstract class CompoundCollection<Element, Part extends Collection<Element>>
implements Collection<Element>
{
...
protected class CompoundIterator<Iter extends Iterator<Element>>
implements Iterator<Element>
{
...
}
}
Общий подкласс с ошибкой компилятора:
public class CompoundList<Element>
extends CompoundCollection<Element, List<Element>>
implements List<Element>
{
...
private class CompoundIndexIterator
extends CompoundIterator<IndexIterator<Element>>
implements IndexIterator<Element>
{
...
}
}
Ошибка:
type parameter diergo.collect.IndexIterator<Element> is not within its bound
extends CompoundIterator<IndexIterator<Element>>
^
Что не так? Код компилируется с помощью eclipse, но не с компилятором java 5 (я использую ant с java 5 на Mac и eclipse 3.5). Нет, я не могу преобразовать его в статический внутренний класс.