Правило Java для расширяет и реализует - PullRequest
5 голосов
/ 14 марта 2010

Во время кодирования я создал класс, extends ArrayList<> и implements Iterable<>. Код:

public class Testclass extends ArrayList<Object>, implements Iterable<Object> { }

Netbeans сообщил об ошибке:

'{' expected

Как это предотвратить?

Ответы [ 4 ]

11 голосов
/ 14 марта 2010

Из комментариев:

ошибка '{' ожидается

код это public class Testclass extends ArrayList<Object>, implements Iterable<Object> { }

Удалите эту запятую ,. Это не принадлежит там. Это просто синтаксическая ошибка.

В будущем, пожалуйста, прочитайте сообщение об ошибке. Если вы не можете интерпретировать это, даже не после небольшого поиска, просто спросите его здесь, вместе с полным сообщением об ошибке и кодом, который вызвал это. Таким образом, вы получите более подходящие ответы быстрее, чем случайное угадывание причины;)

2 голосов
/ 14 марта 2010

ArrayList не реализует Iterator. Может быть, вы имеете в виду Iterable?

В любом случае, это не проблема реализовать интерфейс, который уже реализует суперкласс (он просто избыточен).

Какую ошибку вы получаете? Похоже, что-то еще. Если вы используете дженерики, убедитесь, что типы соответствуют суперклассу и интерфейсу?

Кроме того, кажется, что дух интерфейсов Collection и Iterator противоречит духу иметь объект одновременно. По крайней мере, это довольно запутанно.

1 голос
/ 14 марта 2010

Для класса, который расширяет ArrayList и реализует Iterator, вам нужно три метода:

public boolean hasNext()
public Object next()
public void remove()
0 голосов
/ 14 марта 2010

Удалите кому и орудия

Я не знаю, что вы делаете, но вам не нужен класс, расширяющий ArrayList и реализующий итератор.

Просто внедрите List (или даже Collection, если можете). Если кому-то нужен итератор, он может просто вызвать метод yourList.iterator (). Вы даже можете вернуть свой пользовательский итератор, если вы действительно этого хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...