我最近从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中列出,则最少的代码是什么?

最佳答案

您可以直接使用getOrDefaultget方法

List<String> listOfIds = queryParams.getOrDefault("matchedMe", emptyList());


随着MultiValueMap<K, V>扩展Map<K, List<V>>,您可以直接使用为Map接口定义的方法

10-04 14:24