IDEA发出警告“某些变量始终为假”?

时间:2019-05-11 02:53:05

标签: java intellij-idea

我用循环编写了以下代码片段。但是,当IDEA中变量'X'始终为'false'时,此行

final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail) || X);

我需要一些解释,不必将其放在此处。

    boolean isFirstDose = true;
    boolean isFirstDoseIsPeriodicOrWholePRNOrEoOrOneOff = false;

    for (final DDT: dd)
    {

      final boolean X=
        DosageToolkit.INSTANCE.hasEOTypeDosage(new DoseDetailMutableDTOToBaseDoseDetailAdapter(dd));
      final boolean isOneOffDose = CommonToolkit.INSTANCE.isOneOffDose(dd);

      if (dd.isWholeWhenNeeded() || X|| isOneOffDose)
      {
        if (isFirstDose)
        {
          isFirstDoseIsPeriodicOrWholePRNOrEoOrOneOff=true;
          isFirstDose = false;
        }

        continue;
      }

      final List<DIT> doseInstances =
        new ArrayList<DIT>(dd.getDoseInstances());
      Collections.sort(doseInstances, CommonToolkit.INSTANCE.getDoseInstanceComparator());

      final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail) || X);

      for (final DITdoseInstance : doseInstances)
          {
    }

1 个答案:

答案 0 :(得分:2)

看,您两次验证X,两次都使用||运算符。

如果X为true,则将满足第一个条件,并且循环将继续进行下一次迭代。

这意味着当您在X上验证final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail) || X);时,它始终为false,因为如果为true,则执行无法达到这一点。

IDEA建议您简化为final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail));