我搜索了有关如何通过名称获取Cookie的解决方案,所有解决方案都指向使用for-loops
和if
语句。请参阅下面的代码。
for (Cookie cookie : cookies) {
if (cookie.getName().equals("<NAME>")) {
// do something here
}
if (cookie.getName().equals("<ANOTHER_NAME>")) {
// do something here
}
// and so on...
}
是否有更简单的方法可以通过名称获取值而无需进行循环,如果是的话?
我需要对某些我想要检索的Cookie进行“某些”处理。我不想遍历每个cookie!可能有10个或更多,我只需要三个或者其他东西。
答案 0 :(得分:1)
逻辑(由评论中的Matt Ball建议)将是:
// ...
Map<String, Cookie> cookieMap = new HashMap<>();
for (Cookie cookie : cookies) {
cookieMap.put(cookie.getName(), cookie);
}
Cookie firstRequiredCookie = cookieMap.get("<NAME>");
// do something with firstRequiredCookie
Cookie nextRequiredCookie = cookieMap.get("<ANOTHER_NAME>");
// do something with nextRequiredCookie
// ...
答案 1 :(得分:0)
Cookie名称不是唯一的,因此使用Cookie名称作为地图键并不是理想的方法。
由于Cookie名称不是唯一的,这可能就是为什么Java API
永远不会更新以提供getCookieByName()
方法的原因。