我用循环编写了以下代码片段。但是,当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)
{
}
答案 0 :(得分:2)
看,您两次验证X
,两次都使用||
运算符。
如果X
为true,则将满足第一个条件,并且循环将继续进行下一次迭代。
这意味着当您在X
上验证final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail) || X);
时,它始终为false,因为如果为true,则执行无法达到这一点。
IDEA建议您简化为final boolean isCurrentDoseIsPeriodicOrEO = (CommonToolkit.INSTANCE.isPeriodicDosage(doseDetail));