java eclipse итератор отладчик проблема - PullRequest
0 голосов
/ 30 августа 2010

[edit: я забыл упомянуть, что это тестовый пример JUnit, который я отлаживаю. Это проблема?]

У меня действительно странная проблема в затмении. (Я новичок в отладке в Eclipse, поэтому опубликуйте все, что у вас на уме ...)

Когда я нахожусь на определенной строке, он просто останавливается, чтобы идти дальше в коде. Это остается в той же самой линии, хотя я нажимаю F6 тысячи раз. в течение короткого промежутка времени линия не помечается, а затем вновь Нет никаких исключений ...

эта строка выглядит так:

while (someIterator.hasNext()) {...}

Я не понимаю этого вообще. это странно. Что, черт возьми, не так. Если у Итератора есть следующий, он должен войти в цикл while, но если это не так, он должен пропустить цикл while. Я просто не понимаю ...

Большое спасибо за ваши ответы. я сейчас в полном дерьме

Eclipse Java EE IDE для веб-разработчиков. Версия: Helios Release Идентификатор сборки: 20100617-1415

Ответы [ 3 ]

1 голос
/ 30 августа 2010

Поместите тело вашего цикла в отдельные строки, чтобы вы могли видеть, в чем проблема.Если вы поместите все в одну строку, Eclipse может не показывать, что происходит слишком четко.Если класс коллекции является стандартным, то проблема вряд ли связана с Итератором, если вам каким-то образом не удалось связать связанный список в цикл, что маловероятно.

(расширено из моего примечания ниже)убедитесь, что вы вызываете next (), в противном случае итератор никогда не будет продвигаться вперед.

BAD:

while (i.hasNext()) {
  //...
}

GOOD:

while (i.hasNext()) {
  Object o = i.next();
  //...
}

BEST (при условии универсальных значений)

for (Foo o : list) {
  //....
}
1 голос
/ 30 августа 2010

возможно у вас включено "пропускать все точки останова"!

-> http://www.vogella.de/articles/EclipseDebugging/article.html#advanced_skipbreakpoints

0 голосов
/ 30 августа 2010

См. Представление Переменные , чтобы проверить, что происходит после каждого нажатия F6.

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