1
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 コードの一部です。ただし、コード aganist PMD を実行したとき。メソッドには出口点が 1 つだけある必要があり、それはメソッドの最後のステートメントである必要があります

このコードを次のように成形する方法を誰か教えていただけませんか?

これに関するあなたの経験を共有してください。

4

1 に答える 1

5

あなたのメソッドには出口点が 1 つしかないはずだと言っていませんでしたか?

あなたが示したコードには 1 つのエントリ ポイントしかありませんが、4 つの終了ポイントがあります。


更新: 出口点について話しています。

まず、ツールが作業中のコードが気に入らないと言うからといって、それが正しく、あなたが間違っているとは限りません。単一/複数の出口点の議論には長い歴史があります。どちらもおそらくある程度正しいでしょう。つまり、壊れていないものを修正しないでください。

ただし、PMD を緩和したい場合は、次のようにします。

  • ブール変数を宣言します。つまりisValid、メソッドの先頭で
  • すべてのreturn true/falseステートメントをisValid = true/false
  • メソッドの最後に、return isValid
于 2011-11-11T04:16:24.737 に答える