如何修复系统属性错误Java

时间:2012-04-19 17:44:45

标签: java exception properties null

我正在使用属性-D方法在命令行上为jar文件提供参数。这是代码:

        String prop1 = "one";  

        String val1 = System.getProperty(prop1);  

        System.out.println(val1);

这很有效,但是当我尝试在更大的程序中实现它时,会发生奇怪的事情。没有参数,这将打印null,这很好。但是,如果我做boolean test = val1.equals(null);之类的事情,我会遇到一些似乎与我提供的代码无关的问题。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

您正在使用NullPointerException,因为您尝试评估空引用上的方法。如果val1为null,则无法在其上调用方法。如果要测试null,则应使用==进行测试。

if (val1==null)
   // doSomething

if(val1!=null && val.equals("aValue")) {
    // Do something
}

答案 1 :(得分:2)

如果val1为null,则执行null.equals(null),这将导致NullPointerException

答案 2 :(得分:0)

尝试

val1 == null

null进行比较。

null值是参考值,但不引用真实对象(!(null instanceof Object)),因此它没有方法,甚至没有equals方法。