关于map 里面的containsValue()与containsKey()一个是判断是否存在传值,一个判断是否存在这个key .
刚刚发生了一个问题,postman调用请求的时候,没有传参,所以直接用containsKey()可以判断出,是否存在这个Key,在正式服的环境下,传参都是变成:key:""的情况。然后再用containsKey()就会出现问题,这个时候是不满足条件的,所以会不运行需要的代码。这边需要使用containsValue().后面发现,containsValue()也不行,当有一个参数的时候,会保证不了,能继续给defalut值。所以最后还是用一个判空的条件,一个一个的写上去。
if(!params.containsKey("campaignTitle")&&!params.containsKey("mobileNumber")&&!params.containsKey("memberKey")&&!params.containsKey("startSendAt")
&&!params.containsKey("endSendAt")&&!params.containsKey("startReceivedAt")&&!params.containsKey("endReceivedAt")&&!params.containsKey("notifySettingKey")){
params.put("default",1);
}
if(!params.containsValue("campaignTitle")&&!params.containsValue("mobileNumber")&&!params.containsValue("memberKey")&&!params.containsValue("startSendAt")
&&!params.containsValue("endSendAt")&&!params.containsValue("startReceivedAt")&&!params.containsValue("endReceivedAt")&&!params.containsValue("notifySettingKey")){
params.put("default",1);
}
if ((params.get("campaignTitle") == null || "".equals(params.get("campaignTitle"))) && (params.get("mobileNumber") == null || "".equals(params.get("mobileNumber"))) && (params.get("memberKey") == null || "".equals(params.get("memberKey")))
&& (params.get("startSendAt") == null || "".equals(params.get("startSendAt"))) && (params.get("endSendAt") == null || "".equals(params.get("endSendAt")))
&& (params.get("startReceivedAt") == null || "".equals(params.get("startReceivedAt"))) && (params.get("endReceivedAt") == null || "".equals(params.get("endReceivedAt")))) {
params.put("default",1);
}