首先是导包:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static java.util.Arrays.stream;
封装成函数后的Java代码:
static Map<String, String> parseRawCookieToMap(Headers reqHeaders) {//@NotNull
final var COOKIE = reqHeaders.getFirst("Cookie");
return (COOKIE != null && !COOKIE.isBlank()) ? parseRawCookieToMap(COOKIE) : Collections.emptyMap();
}
//@NotNull @unmodifiableView
static Map<String, String> parseRawCookieToMap(String rawCookie) {//@NotNull
final var ParamsMap = new HashMap<String, String>();
stream(rawCookie.split("; "))
.map(pair -> pair.split("="))
.forEach(kv -> {
if ( !ParamsMap.containsKey(kv[0]) ) ParamsMap.put(kv[0], kv[1]);
});
return Collections.unmodifiableMap(ParamsMap);
}
我一般都是把上述函数都封装在 Utils 包下 的 interface 里面。毕竟这些都是完全无状态的。