2012-04-16 3 views
0

У меня есть следующий код, работающий в двух разных средах. Первой средой является среда разработки в Eclipse с Java 7 с использованием соответствия Java 6 для запуска моего webapp. И еще мой сервер разработки, на котором работает Java 6. После этого код генерирует NullPointerException на сервере разработки, но не в моей среде разработки. Может кто-нибудь объяснить, почему это происходит?NullPointerException при итерации null ArrayList

List<String> list = null; 
for(String s : list) 
{ 
// do something 
} 
+0

В конце концов, что такое использование этого оператора 'List list = null;'? Это совершенно бесполезно. – Lion

+0

@ Lion это просто пример, в моем коде это, конечно, не так, я просто знаю, что в моем коде в этой точке переменная имеет значение null. – newbie

+0

Что происходит, когда вы пытаетесь сделать это, добавив некоторые значения в свой «Список» (не сохраняя «null») в обеих средах. Работает ли он над обоими из них? – Lion

ответ

1

Это всегда будет исключение. Скорее всего, что что-то терпит неудачу в одной среде, а значение равно null и не прерывается в другой среде, где оно не равно нулю.

+0

Извините, на самом деле это было не так, но это правильный ответ. – newbie

0

Вы что, шутите? Это будет взрываться каждый раз, когда это будет гарантировано.

Если он «не взрывается при запуске в другом месте», я гарантирую, что вы не используете этот код.

3

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

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