【发布时间】:2018-03-06 23:05:52
【问题描述】:
我很想知道如何用 Java 编写以下代码的较短版本。
我有以下 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();
}
以下代码使用 lambda 可能会更短,但它太长且难以阅读:
int status = Optional.ofNullable(response)
.orElse(Response.status(Response.Status.INTERNAL_SERVER_ERROR).build()).getStatus();
有没有更短的单行方式来获取这个 int 值?
你认为第二个比第一个更好吗?
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为代码正在运行。关于如何改进代码的问题属于Code Review Stack Exchange,
标签: java lambda jersey jax-rs jersey-client