Вы должны исправить или очистить код?
Во-первых, как вы уже видели, break
должен идти, иначе цикл никогда не будет зацикливаться.
Так что удалитеit.
Но, если вы удалите его, цикл будет выполняться вечно, поскольку d
никогда не увеличивается.
Поэтому добавьте d++
, иначе цикл будет выполняться вечно.
for (int d = 0; d < op.getOperationDetails().size(); d++) {
OperationDetail dtl = op.getOperationDetails().get(d);
if (dtl.getOpStatId() == 1 || dtl.getOpStatId() == 3 || dtl.getOpStatId() == 4) {
sum.setOpCond(true);
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
}
} else {
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setOpCond(true);
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
} else {
sum.setOpCond(true);
}
}
}
Теперь спросите себя, когда sum.setOpCond(true);
не вызывается?
Он всегда вызывается, поэтому переместите его за пределы if
операторов.
for (int d = 0; d < op.getOperationDetails().size(); d++) {
OperationDetail dtl = op.getOperationDetails().get(d);
sum.setOpCond(true);
if (dtl.getOpStatId() == 1 || dtl.getOpStatId() == 3 || dtl.getOpStatId() == 4) {
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
}
} else {
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
}
}
}
Теперьспросите себя, в чем разница между блоком if
и блоком else
?
Нет, поэтому исключите внешний оператор if
.
for (int d = 0; d < op.getOperationDetails().size(); d++) {
OperationDetail dtl = op.getOperationDetails().get(d);
sum.setOpCond(true);
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
}
}
Теперь измените цикл нарасширенный for
цикл.
for (OperationDetail dtl : op.getOperationDetails()) {
sum.setOpCond(true);
if (dtl.getRelblkId() != null && dtl.getOperationsumRefId() != null && dtl.getOperationsumParentId() != null) {
sum.setIsReliefOperation("Y");
reliefOperationMap.put(dtl.getOperationsumId(), "Y");
}
}
И наконец, "вводит новый статус с идентификатором 10 (dtl.getOpStatId()
равен 10)" .
Ну, так как getOpStatId()
больше нигде не используется, код будет поддерживать любой новый статус без изменений, поэтому делать нечего.
Теперь, когда вы поняли это, вы можете на самом деле вернуться к источнику.все назначение.Вас действительно просили «исправить» код или просто поддерживать статус 10?Помните, согласно тому, что вы написали:
задача состоит в том, чтобы ввести новый статус с идентификатором 10 (dtl.getOpStatId () равен 10) в приведенном ниже коде.Меня попросили внести необходимые изменения в этот код, чтобы добавить необходимые функции
Итак, реальный ответ: Нет коданеобходимо изменить!