0

プロパティ-Dメソッドを使用して、コマンドラインでjarファイルに引数を指定しています。コードは次のとおりです。

        String prop1 = "one";  

        String val1 = System.getProperty(prop1);  

        System.out.println(val1);

これは機能しますが、これをより大きなプログラムに実装しようとすると、奇妙なことが起こります。引数がないと、これは出力されますがnull、これは問題ありません。しかし、その後、のようなことboolean test = val1.equals(null);をすると、提供したコードとは関係がないように見える問題が発生します。何かご意見は?

4

3 に答える 3

5

NullPointerExceptionnull参照でメソッドを評価しようとしているため、を実行しています。val1がnullの場合、そのメソッドを呼び出すことはできません。nullをテストする場合は、でテストする必要があります==

if (val1==null)
   // doSomething

また

if(val1!=null && val.equals("aValue")) {
    // Do something
}
于 2012-04-19T17:47:15.230 に答える
2

null.equals(null)val1がnullの場合、これを実行します。これにより、が発生しNullPointerExceptionます。

于 2012-04-19T17:46:06.737 に答える
0

試す

val1 == null

代わりに。と比較する場合null

null値は参照値ですが、実際のオブジェクト()を参照していないため!(null instanceof Object)、メソッドはなく、equalsメソッドもありません。

于 2012-04-19T17:47:32.013 に答える