使用场景:
使用 httpclient set header的时候,如果使用map存放的并且map中有为null的值,会直接报空指针异常
如何改进呢?
我已经写了好多个了,又不想一个个手动去判断,那只能写一个工具类了。
众所周知Map中是用keyset()方法去取这个key的名字的(我是后面查JDKAPI才记起来的。。。。)
然后根据 get(key)方法就可以拿到value的值了。
所以可以如下这么写一个过滤的util:
大致的意思是:
先遍历传入的MAP中的所有KEY,然后根据这个KEY去取value判断这个值是否为空,然后再去把值放入新的MAP里。
private Map<String,Object> checkParams(Map<String,Object> oldParams){
Map<String,Object> params = new HashMap<>();
for (String key : oldParams.keySet()){
if (null == oldParams.get(key)){
continue;
}else {
params.put(key,oldParams.get(key));
}
}
return params;
}