检查 Hashtable.get 是否有效

Check if Hashtable.get worked

我正在开发一个检查 config 文件完整性的 Java 程序。

在某些时候,我需要确保设置了一些强制值,要么给它一个默认值。

所以,我让 HashTable<String, String>key => value table 一样工作。在这个 table 我把所有的配置行都存到文件里,然后我检查一下。

当特定的值不存在时就会出现问题,例如:

String p = null;
/*...*/

//here I'm trying to get the LOG value
p = this.PAIRS.get("LOG");

if(p.equals(null) || p.equals("")){
    //set default value
}

问题是我得到了一个 NullPointerException,所以如果有人可以帮助我确定 this.PAIRS.get("LOG"); 是否找到了一个密钥,那就太好了...

谢谢!


编辑:已解决,正确的做法是使用 == 而不是 equals

再次感谢!

如果 p 为 null,将抛出 NullPointerException,因为它不是 Object 的实例(因此 equals 方法不存在)。检查 null 应按以下方式完成:p == null

p = this.PAIRS.get("LOG"); 

此代码return如果密钥不存在则为 null 并且当您执行以下语句时它将抛出异常

if(p.equals(null) || p.equals("")){
    //set default value
}

而是先检查 null 然后再执行 .equals

 if(p==null || p.equals("")){
        //set default value
    }