Я получаю неожиданное поведение в приложении Android 1.5 под эмулятором Windows и отлаживаю с помощью Eclipse.Вот обобщение того, что делает код:
if (someCondition) {
System.out.println("got here");
return "a";
}
if (someOtherCondition)
return "b"
return "c";
Если я перебираю этот код с помощью отладчика, если someCondition
истина, он выводит "получил здесь", но затем переходит к финалуоператор return , как будто он собирается выполнить эту строку.Из того, что я могу сказать, он возвращает «а», но это сбивает с толку, потому что кажется, что он собирается вернуть «с».
Если someCondition
ложно, а someOtherCondition
верно, отладчикпереходит к строке return "b"
- он не переходит к последнему оператору возврата, а затем оставляет метод, как и ожидалось.
Как я уже говорил, кажется, что он всегда возвращает ожидаемое поведение, но тот факт, чтоотладчик перескочил на неправильную линию, и я погнался за фантомными ошибками.Полная перестройка, перезапуск Eclipse и перезапуск Windows - все это не решило проблему - ее можно полностью воссоздать.
Есть идеи?