检查Hashtable.get是否有效

时间:2017-06-03 08:12:57

标签: java hashtable

我正在使用检查config文件完整性的Java程序。

在某些方面,我需要确保设置一些强制值,或者给它一个默认值。

所以,我让HashTable<String, String>key => value表一样工作。在此表中,我将所有配置行存储在文件中,然后检查它。

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

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

再次感谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

如果密钥不存在,则此代码返回null,当您执行以下语句时,它将抛出异常

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

首先检查null然后再执行.equals

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