restTemplate.getForObject(“URL”,Object [] .class)可以返回NULL吗?

时间:2017-11-15 07:50:35

标签: java spring resttemplate

我使用了这个答案的解决方案: 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。很抱歉开始新主题,但我的业力不允许我评论答案。

1 个答案:

答案 0 :(得分:3)

是的,是

的结果
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)

如果你需要一个流。