使用場景:
使用 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;
}