Java код PMD жалуется, так как метод должен иметь только одну точку выхода - PullRequest
1 голос
/ 11 ноября 2011
public boolean validate(final Beanform[] bagdata) {
        final int length = bagdata.length;
        if (length == 4) {
            return true;
        } else if (length == 1) {
            result = "length==1, Length should be greater than 1";
            return false;
        } else if (length == 3) {
            if (bagdata[0].getCycleType() == null) {
            result = "Cyclic Type is null for length==3";
                return false;
            }
        }

        return true;
    }

Привет,

Выше приведен фрагмент кода Java, который работает нормально. Однако, когда я запустил код аганиста PMD. Метод должен иметь только одну точку выхода, и это должно быть последним оператором в методе

Не могли бы вы, пожалуйста, скажите мне, как сформировать этот код, чтобы следует метод должен иметь только одну точку выхода, и это должно быть последним оператором в методе И что является лучшим prtacie в этом типе кода ??

Пожалуйста, поделитесь своим опытом по этому вопросу.

1 Ответ

5 голосов
/ 11 ноября 2011

Вы уверены, что это не говорит о том, что ваш метод должен иметь только одну точку выхода точку?

Код, который вы показали, имеет только одну точку входа, но 4 точки выхода.


Обновление: мы говорим о точках выхода.

Во-первых, просто потому, что инструмент говорит вам, что ему не нравится ваш рабочий код не 'значит, это правильно, а ты не прав.Дискуссия об одной или нескольких точках выхода имеет долгую историю;оба, вероятно, правы в определенной степени.Другими словами, не исправляйте то, что не сломалось!

Но если вы действительно хотите успокоить PMD, вот что вы могли бы сделать:

  • объявите логическую переменную, т.е. isValid, в верхней части вашего метода
  • замените каждый оператор return true/false на isValid = true/false
  • в конце метода, return isValid
...