我最近从php转到Java,所以我的Java技能很低。
在我的代码中,我得到了一个名为queryParams的MultiValueMap。
MultiValueMap<String, String> queryParams;
样本值可以是
{matchedMe=[11,22]}
必需,我需要获取要在变量listOfIds上设置的列表[11,22],因此我在下面编写了代码。
List<String> listOfIds = null;
queryParams.forEach((k, v)->{
if(k.equals("matchedMe")){
listOfIds = v;
}
}
);
问题:
错误如下:封闭范围中定义的lambda局部变量viewedIds必须是final或fin
问题
如何解决这个问题?
如果我需要列表,而不是从MultiValueMap queryParams中列出,则最少的代码是什么?
最佳答案
您可以直接使用getOrDefault
或get
方法
List<String> listOfIds = queryParams.getOrDefault("matchedMe", emptyList());
随着
MultiValueMap<K, V>
扩展Map<K, List<V>>
,您可以直接使用为Map
接口定义的方法