restTemplate.getForObject("URL", Object[].class) return 可以为 NULL 吗?

Can restTemplate.getForObject("URL", Object[].class) return NULL?

我已经使用了这个答案的解决方案: Get list of JSON objects with Spring RestTemplate 它工作得很好。它做的正是我需要的。

ProcessDefinition[] response = restTemplate.getForObject(url, ProcessDefinition[].class);

够不够:

return Arrays.asList(response);

或者这样会更好:

return Arrays.asList(Optional.ofNullable(response).orElse(new ProcessDefinition[0]));

P.S。不好意思开了新话题,我的业力不允许我评论答案。

是的,

的结果
ProcessDefinition[] response = restTemplate.getForObject(url, ProcessDefinition[].class);
如果 HTTP 响应主体为空(不是 [],而是完全为空主体),

可以是 null

因此,如果您不确定 HTTP 响应永远不会为空,则检查它会更安全。

return Optional.ofNullable(response).map(Arrays::asList).orElseGet(ArrayList::new)

return Optional.ofNullable(response).map(Stream::of).orElseGet(Stream::empty)

如果你需要直播。