0

我有一个需要检查的场景null。我有一个名为dT

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

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

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

还有一个NullPointerException是因为.get. 如何测试null地图中的键何时不存在?我知道该put方法应该处理它,但这不在我的控制之下。]

4

6 回答 6

10

即使现在我也得到了空指针,因为 .get 抛出异常

如果caseChk.get("dT")你只有一行并且确定它正在抛出异常,那么唯一的可能性caseChk可能是空的。

于 2013-01-11T17:41:32.340 回答
2

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

于 2013-01-11T17:42:42.087 回答
0

caseChk 可以为空试试这个

 String dT;
if(chaseChk!= null) 
dT= (String)caseChk.get("dT");`
于 2013-01-11T17:44:42.407 回答
0

尝试使用检查 null 的方法

public String checkNull_HashMap(Hashtable hashMap, String hashKey) {

    if (hashMap.get(hashKey) == null) {
        return "";
    } else {
        return hashMap.get(hashKey).toString();
    }
}
于 2014-02-17T15:35:53.293 回答
0

最好的选择是在调用之前检查 nulltoString()

if ( hashMap.get(hashKey) != null ) { return hashMap.get(hashKey).toString(); }
于 2014-11-12T05:44:15.680 回答
0

试试这个,这会奏效。

    if(!caseChk.isEmpty)
    {
      String dT = (caseChk.containsKey("dT")?(String)caseChk.get("dT"):" ")
    }   
于 2014-11-12T06:27:49.047 回答