检查 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
}
我正在开发一个检查 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
}