[英]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.