正确分配给使用&&与Java中的同一个变量的变量?

Csanchez:

我正在做一些改变成旧的代码比需要维护,我发现这样的事情

public boolean aMethod(){
    boolean isValid = true;

    **isValid = isValid &&** executeGetDocs(id.toString(),program().toString(), document.get(name));

  return isValid;
}

该方法executeGetDocs可以返回true或false。

但我不知道,如果**的isValid =的isValid && ** executeGetDocs是正确的或仅仅是多余的。

所以我在这里,任何人都可以请,给我这个解释一下?

非常感谢!

EDITED

整个方法:

private boolean validateDocs(List<Map<String, Object>> documentsList) {
        boolean isValid = true;
        StringBuilder gradoAntComp = new StringBuilder();
        for (Map<String, Object> document : documentsList) {
            String id = document.get("ID_DOC").toString();
            if (id.equalsIgnoreCase("25")) {
                isValid = getData(id.toString(),program().toString(), document.get(name))
            } else if (id.equalsIgnoreCase("26") ) {
                isValid = isValid && getDocs(id.toString(),program().toString(), document.get(name));
            } 
        }
        return isValid;
    }
他们是:

这是在你原来的问题是多余的。您发布的原始方法可以减少到:

public boolean aMethod() {
    return executeGetDocs(id.toString(),program().toString(), document.get(name));
}

因为(true && x) == x任何boolean x

但是,因为你改变了这个问题,答案也会改变。现在boolean变量可以在一个循环中改变多次。因此它是有道理的和可变的前值(可能是truefalse)与另一个boolean,这可能会导致它的价值变化。

private boolean validateDocs(List<Map<String, Object>> documentsList) {
    boolean isValid = true;
    StringBuilder gradoAntComp = new StringBuilder();
    for (Map<String, Object> document : documentsList) {
        String id = document.get("ID_DOC").toString();
        if (id.equalsIgnoreCase("25")) {
            // this can set isValid to either false or true
            isValid = getData(id.toString(),program().toString(), document.get(name))
        } else if (id.equalsIgnoreCase("26") ) {
            // therefore performing logical AND between the previous value of
            // isValid and some additional boolean is meaningful - isValid will
            // be assigned true only if it was true before this statement AND
            // getDocs(id.toString(),program().toString(), document.get(name)) is true
            isValid = isValid && getDocs(id.toString(),program().toString(), document.get(name));
        } 
    }
    return isValid;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

(Python中,MySQL的)我如何分配给MySQL查询一个变量?

使用扫描仪值分配给另一个类的变量?

如何将多个处理程序分配给同一个uri?

如何在Java中的上一个命令中将long变量分配给输出?

如何将另一个文件中的变量分配给类常量?

在函数中获取变量并将其分配给其范围之外的另一个变量

SWIFT:将结构数组中某项的所有值分配给一个变量

C#将指向引用类型的变量分配给另一个变量,后者中存储了什么?

将mltiple值分配给VBA中的一个变量进行访问

bash:将变量的第一行分配给一个变量

将一行中的每个单词分配给一个变量

如何使用一个用户输入将多个数字分配给多个变量

分配给另一个的ArrayList类型变量在Android Java中作为引用传递

将$ @分配给Shell函数中的另一个变量

如何将一个JavaScript文件中的变量分配给另一个JS File?

当我们将 2 个值分配给同一个变量时会发生什么?

如何将包含空格的变量分配给 KSH 中的另一个变量

在同一个函数中返回多个变量

我可以重载 operator= 以将一个类的对象分配给另一个类的变量,但两个类都来自同一个类模板

如果我将一个方法分配给一个变量是在java中调用的方法吗?

使用 Jquery 将多个函数分配给同一个类/元素?

同一个变量中的不同值

在 Swift 中声明一个类类型的变量并将其分配给不同的变量

在 bash 变量中应用 sed 并将其分配给另一个

防止索引将多个主节点分配给同一个节点

将 PWD 最后一个值分配给 perl 模块中的变量

几个变量的结果可以分配给 Shiny 中的另一个变量吗?

从列表中取出一个元素并将其分配给一个变量

将变量分配给一个选择器并使最后一个子项在 javascript 中工作