[英]Optional java 8 with "return" from methods
好的,我想創建一個根據某些條件返回字符串的方法(參數是否為空):
private static String getErrorMessage(String code, Object... params) {
Optional.ofNullable(params)
.ifPresent(params -> processWithParams(code,params))
.orElse(() -> process(code));
}
processWithParams() 和 process() 兩種方法都返回字符串(字符串值是我想從 getErrorMessage() 方法返回的值),這可能嗎?
謝謝
我不明白為什么你應該接受一個為params
傳遞null
的調用者。 如果有人只用一個參數調用getErrorMessage
, param
將是一個空數組(不是null
)。 所以我建議:
Objects.requireNonNull(params);
return processWithParams(code, params);
不禁止調用者使用null
作為第二個參數進行調用。 如果您的代碼已經有很多這樣的調用,而您現在不想清理它:
if (params == null) {
params = new Object[] {};
}
return processWithParams(code, params);
但是,如果您出於某種奇怪的原因堅持,鮑里斯蜘蛛是正確的:
return Optional.ofNullable(params)
.map(p -> processWithParams(code, p))
.orElse(process(code));
或者如果不需要的處理非常昂貴:
.orElseGet(() -> process(code));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.