更简单的逻辑条件来检查非空要求

Vla*_*mir 0 java logic refactoring boolean

我有一些简单的逻辑来检查字段是否有效:

private boolean isValidIfRequired(Object value) {
    return
        (required && !isEmpty(value)) || !required;
}
Run Code Online (Sandbox Code Playgroud)

它告诉该字段是有效的,如果它是要求的而不是空的或不需要.

我不喜欢这个必需的|| !必填部分 只需要的东西会更好.如何简化此方法以使其更易读和简单?

T.J*_*der 6

怎么样:

private boolean isValidIfRequired(Object value) {
    return !required || !isEmpty(value);
}
Run Code Online (Sandbox Code Playgroud)

或者(谢谢@Peter Lawrey)

private boolean isValidIfRequired(Object value) {
    return !(required && isEmpty(value));
}
Run Code Online (Sandbox Code Playgroud)

在任一情况下,如果requiredfalse,则||&&表达将短路isEmpty将永远不会被调用.如果requiredtrue,则将评估||&&将评估的后半部分,调用isEmpty并返回该调用的(反向)结果.