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

您遇到 a 是NullPointerException因为您尝试在空引用上评估方法。如果 val1 为 null,则不能对其调用方法。如果要测试 null,则应使用==.

if (val1==null)
   // doSomething

或者

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

如果 val1 为 null,您正在做null.equals(null)这将导致NullPointerException.

于 2012-04-19T17:46:06.737 回答
0

尝试

val1 == null

相反,当与null.

null值是一个引用值,但不引用一个真实的对象(!(null instanceof Object)),所以它没有方法,甚至没有equals方法。

于 2012-04-19T17:47:32.013 回答