繁体   English   中英

空检查哈希映射键

[英]null check for hashmap key

我有一种情况需要检查null 我有一个名为dT的密钥:

String dT = (String) caseChk.get("dT");

这将抛出NullPointerException ,因为该键本身不存在。 如果我检查

if(caseChk.get("dT") != null) {
    // do something
}

由于.get引发了另一个NullPointerException 当地图中的键不存在时,如何测试null 我知道put方法应该处理它,但是那不在我的控制之下。

即使现在我也因为.get引发异常而得到nullpoiner

如果caseChk.get("dT")只有您所在的那一行并且确定它caseChk异常,则唯一的情况是caseChk可以为null。

要确保密钥存在,您应该使用HashMap#containsKey(key)函数。 密钥存在后,您可以使用HashMap#get(key)获取值并将其与null进行比较。

caseChk coud为null试试看

 String dT;
if(chaseChk!= null) 
dT= (String)caseChk.get("dT");`

尝试使用方法检查null

public String checkNull_HashMap(Hashtable hashMap,String hashKey){

    if (hashMap.get(hashKey) == null) {
        return "";
    } else {
        return hashMap.get(hashKey).toString();
    }
}

最好的选择是在调用toString()之前检查null。

if ( hashMap.get(hashKey) != null ) { return hashMap.get(hashKey).toString(); }

试试这个,这将起作用。

    if(!caseChk.isEmpty)
    {
      String dT = (caseChk.containsKey("dT")?(String)caseChk.get("dT"):" ")
    }   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM