我很早就知道如何在Java中编写下面的代码的较短版本。如果Java中的对象为null,则获取默认值
我有以下的Java类(属于JAX-RS):
我需要回responseStatus的int值如果可能(响应不为空),否则需要返回缺省的int状态值。
我不想为我的项目添加任何库依赖项,只是为了这一小段代码。
这是在我的脑海里拿出第一代码:
private static int getDefaultStatusCodeIfNull(final Response response) {
if (Objects.isNull(response)) {
return Response.Status.INTERNAL_SERVER_ERROR.getStatusCode();
}
return response.getStatus();
}
下面的代码是可能与拉姆达短,但它是如此漫长而艰辛阅读:
int status = Optional.ofNullable(response)
.orElse(Response.status(Response.Status.INTERNAL_SERVER_ERROR).build()).getStatus();
是否有任何较短的一行方式来获得此int值?
你认为第二个是第一个更好的解决方案吗?
我投票关闭这一问题作为题外话,因为代码工作。有关如何改进代码的问题属于[代码评论](https://codereview.stackexchange.com/)Stack Exchange, – AJNeufeld