2012-05-10 6 views
0

У меня возникла проблема, связанная с моей общей коллекцией. Хотя в моем классе не отображаются какие-либо ошибки компиляции, IDE (Netbeans) показывает ошибку в значке класса в дереве проекта, говоря «Файл анализа ошибок». Любая помощь будет оценена по достоинству.Общий цикл цикла для цикла

Мой код

public abstract class AutocompleteCacheImpl<E> implements AutocompleteCache { 

    public void store(Collection<E> es) { 
     for(E e : es) { 
      store(e); 
     } 
    } 

    public void store(E e) { 
     //do something 
    } 
} 

интерфейс

public interface AutocompleteCache<E> { 

    public void store(Collection<E> es); 

} 

ответ

3

общественного класса AutocompleteCacheImpl <E> реализует AutocompleteCache

Это неправильно, потому что интерфейс AutocompleteCache также родовым.

Попробуйте это:

public abstract class AutocompleteCacheImpl<E> implements AutocompleteCache<E> 

Кроме того, ключевое слово public должно предшествовать ключевое слово abstract

+2

Не имеет ** **, чтобы прийти, это только конвенция. –

+0

Достаточно честный, но все же, исправить его, прежде чем мы все сойдем с ума ;-) –

+0

Great Catch, Thanks –

2

Вы должны указать общий тип (AutocompleteCache ==>AutocompleteCache<E>), чтобы компилятор знал, что E в AutocompleteCacheImpl является такой же, как E в AutocompleteCache:

public abstract class AutocompleteCacheImpl<E> implements AutocompleteCache<E> 
+0

большой улов, не могу поверить, что я пропустил это. Спасибо –

Смежные вопросы