可选的 java 8,带有从方法"return"



好吧,我想创建一个根据某种条件返回字符串的方法(无论参数是否为null):

private static String getErrorMessage(String code, Object... params) {
    Optional.ofNullable(params)
              .ifPresent(params -> processWithParams(code,params))
              .orElse(() -> process(code));
}

两个方法processWithParams()和process()返回字符串(字符串值是我要从geterrormessage()方法返回的值),是否可能?

谢谢

我不明白为什么您应该接受null传递CC_1的呼叫者。如果有人只用一个参数调用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));

最新更新