2012-04-16 84 views
0

我有两个不同的环境中运行以下代码。第一个环境是Eclipse中的开发环境,Java 7使用Java 6来运行我的webapp。另一个是我的开发服务器运行Java 6.以下代码在开发服务器上抛出NullPointerException,但不在我的开发环境中。有人可以解释为什么会这样吗?迭代null时发生NullPointerException ArrayList

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

毕竟是什么使用这个语句'列表 list = null;'?这完全没用。 – Lion 2012-04-16 19:38:35

+0

@Lion它只是一个例子,在我的代码中当然不是这样,我只知道在我的代码中,那个变量是空的。 – newbie 2012-04-16 19:39:50

+0

当您尝试在两个环境中向“List”(通过不保留null)添加一些值时会发生什么情况。它们对两者都有效吗? – Lion 2012-04-16 19:43:50

回答

1

这将始终引发异常。更可能的情况是某个环境中的某些内容失败,并且该值为null,并且在另一个不为null的环境中不失败。

+0

对不起,它不是实际上是空的,但这是正确的答案。 – newbie 2012-04-19 08:39:46

0

你在开玩笑吗?这将每次保证爆炸。

如果“在其他地方运行时不爆炸”,我保证你没有运行这个代码。

3

所写的代码每次都会引发异常。确保代码在您的开发环境中正确编译。如果它成功运行,它将运行不同版本的代码(可能是不会抛出NullPointerException的较旧版本的类)。

相关问题