在单个方法中处理多个http响应并同时返回它们



我有控制器和服务类,它们有这些方法

服务等级

public ResponseEntitiy methodA(Model model) {
if(model.contains("val1")) {
service(val1);
}
if(model.contains("val2")) {
service(val2);
}
if(model.contains("val3")) {
service(val3);
}
}
public ResponseEntity<ResponseModel> service(String val) {
// some logic to handle api calls
}

我从期望响应的控制器类调用了methodA。

所以我的问题是,我可以一起返回多个响应吗?而不是在执行三个if块后逐个返回?

在java中,从一个方法可以返回一个值。因此,简单地说,您无法处理来自一个方法的多个响应。

相反,您可以从方法返回列表/映射或自定义响应对象。

所以代码可以看起来像:

public List<ResponseEntitiy> methodA(Model model) {
List<ResponseEntitiy> result = new ArrayList();
if(model.contains("val1")) {
result.add(service(val1));
}
if(model.contains("val2")) {
result.add(service(val2));
}
if(model.contains("val3")) {
result.add(service(val3));
}
return result;
}

最新更新