java8 httpclient NameValuePair轉換14行程式碼一行搞定!
阿新 • • 發佈:2018-11-27
工作中,我們常常會通過httpclient呼叫一些三方提供的api, 進行引數傳遞的時候會用NameValuePair[ ]
於是我們同事寫了一個方法封裝一下 NameValuePair,將map中用 引數key ,引數值value,做一個轉換
如下:
public static NameValuePair[] convertMap2NameValuePairs(Map<String, String> data) { Set<Map.Entry<String, String>> entrySet = data.entrySet(); int size = entrySet.size(); NameValuePair[] nameValuePairs = new NameValuePair[size]; List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>(); for (Map.Entry<String, String> entry : entrySet) { String key = entry.getKey(); String value = entry.getValue(); NameValuePair nameValuePair = new NameValuePair(key, value); nameValuePairList.add(nameValuePair); } for (int i = 0; i < nameValuePairList.size(); i++) { nameValuePairs[i] = nameValuePairList.get(i); } return nameValuePairs; }
看了上面的程式碼,覺得寫的太長,用java8 寫了一個簡化版的,一行程式碼。如下:
public static NameValuePair[] convertMap2NameValuePairs(Map<String, String> data) {
return data.entrySet().stream().map(entry -> new NameValuePair(entry.getKey(), entry.getValue())).toArray(NameValuePair[]::new);
}
java8 的新特性確實可以讓程式碼變得更加簡潔,值得我們去學習和使用!