我正在使用检查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
。
再次感谢!
答案 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
}