我很早就知道如何在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