Аномалия «DD» и анализ потока данных говорят о том, что вы присваиваете переменную более одного раза, не используя ее между присваиваниями. Так что все, кроме последнего назначения, не нужны. Обычно это означает, что вы не разделили свой сценарий ios должным образом. В вашем случае у вас есть три сценария ios:
- Если ключевое слово не заполнено, возвращаемое значение равно «0».
- В противном случае l oop на всех страницах, и если getRank () возвращает ранг, отличный от нуля, тогда это возвращаемое значение.
- В противном случае возвращаемое значение равно "
totalPage * pageSize - 1
+"
Если вы реализуете эти сценарии ios один за другим вы получаете метод, который не имеет никакого потока данных или других проблем PMD:
public String rank(String keyword, int pageSize, int totalPage) {
String result;
if (isNotBlank(keyword)) {
result = "0";
} else {
int rank = 0;
for (int page = 1; page < totalPage && rank == 0; page++) {
rank = getRank(keyword, pageSize, totalPage);
}
if (rank != 0) {
result = String.valueOf(rank);
} else {
result = format("{0}+", totalPage * pageSize - 1);
}
}
return result;
}
Если вы присмотритесь к для l oop, вы увидите, что page
используется только для зацикливания. Он не используется внутри l oop. Это указывает на то, что для l oop, вероятно, нет необходимости. getRank(keyword, pageSize, totalPage)
всегда должен возвращать одно и то же значение, поскольку его аргументы никогда не меняются в течение l oop. Так что может быть достаточно позвонить getRank(...)
только один раз.