0

次のコードを 2 つの異なる環境で実行しています。最初の環境は、Java 6 準拠を使用して webapp を実行する Java 7 を使用した Eclipse の開発環境です。もう 1 つは、Java 6 を実行している開発サーバーです。次のコードは、開発サーバーでは NullPointerException をスローしますが、開発環境ではスローしません。誰かがなぜこれが起こっているのか説明できますか?

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

3 に答える 3

3

書かれているように、コードは毎回例外をスローします。開発環境でコードが正しくコンパイルされていることを確認してください。正常に実行されている場合は、別のバージョンのコード (おそらく、NullPointerException をスローしない古いバージョンのクラス) が実行されています。

于 2012-04-16T19:39:43.570 に答える
1

これは常に例外をスローします。より可能性が高いのは、ある環境で何かが失敗し、値が null であり、null ではない別の環境では失敗していないということです。

于 2012-04-16T19:35:28.773 に答える
0

冗談ですか?これは保証されるたびに爆発します。

「他の場所で実行しても爆発しない」場合は、このコードを実行していないことを保証します。

于 2012-04-16T19:36:00.883 に答える