> 进入,java,http"/>

首页 > 解决方案 > 转换条目> 进入

问题描述

我正在尝试将标题名称及其第一个值作为条目存储到列表中。我不确定如何实现这一目标。

HttpHeaders headerNames = request.getHeaders();
List<Entry<String, String>> reqHeaders = new ArrayList<>();
for (Entry<String, List<String>> entry : headerNames.entrySet()) {
    reqHeaders.add(entry.getKey(), entry.getValue().get(0));   //This line is incorrect
}

标签: javahttp

解决方案


Java 9 开始,有一个新的实用方法允许创建一个不可变的条目,即Map#entry(Object, Object).

for (Map.Entry<String, List<String>> entry : headerNames.entrySet()) {
     reqHeaders.add(Map.entry(entry.getKey(), entry.getValue().get(0)));  
}

Java 9之前,您可以使用AbstractMap.SimpleImmutableEntryAbstractMap.SimpleEntry

for (Map.Entry<String, List<String>> entry : headerNames.entrySet()) {
    reqHeaders.add(new SimpleImmutableEntry<>(entry.getKey(), entry.getValue().get(0))); // immutable
    reqHeaders.add(new SimpleEntry<>(entry.getKey(), entry.getValue().get(0))); // mutable version
}

推荐阅读