如何使用Stream根据Map更新列表元素的属性?
解决方案
你需要在forEach中调用Reponses的setError_msg方法,用当前error_msg作为键从errormapping中获取映射值,同时处理键不存在的情况(比如保留原错误信息或设置默认值)。
完整代码示例
// 前提是Reponses类已补充对应的getter和setter方法 reponse.stream().forEach(e -> { // 从映射表中取替换值,不存在则保留原错误信息 String mappedMsg = errormapping.getOrDefault(e.getError_msg(), e.getError_msg()); e.setError_msg(mappedMsg); });
关键补充说明
- 你的
Reponses类需要补充error_msg的setter方法(仅定义属性无法修改值):
public class Reponses { private String id; private String error_msg; // error_msg的getter public String getError_msg() { return error_msg; } // error_msg的setter,用于修改属性值 public void setError_msg(String error_msg) { this.error_msg = error_msg; } // 可按需补充id的getter/setter public String getId() { return id; } public void setId(String id) { this.id = id; } }
- 若需求是映射表中无对应键时设为
null或自定义默认值,可调整取值逻辑:
// 无对应键时设为null String mappedMsg = errormapping.get(e.getError_msg()); // 无对应键时设为自定义默认值 String mappedMsg = errormapping.getOrDefault(e.getError_msg(), "未知错误");
内容的提问来源于stack exchange,提问作者user145345
相关产品推荐
相关产品推荐

