避免重新分配参数

Sur*_*nga 4 java pmd

I\xe2\x80\x99m 出现 PMD 红色违规

\n\n

避免重新分配参数,例如“bankRequest”

\n\n

这是我的方法

\n\n
   @Override\npublic BankDTO loadTariff(BankDTO bankRequest, int[] executionLevels) {\n    double[] fee = null;\n    for (int level : executionLevels) {\n\n        // Check the tariff availability from execution level one to .....\n        fee = loadCokaAndBankFee(bankRequest,level);\n\n        if (fee != null) { // if fee found reload the bank request with new\n                            // amount\n            bankRequest = reloadBankRequest(bankRequest, fee);\n            break; // no need to go for any other level deep level cover //\n                    // here.\n        } // if tariff not found use the esb provided amounts\n    }\n\n    return bankRequest;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人可以解释一下这段代码有什么问题吗?如果我忽略它会有什么影响。

\n

Isa*_*aac 5

在你的例子中,有一个名为 的参数bankRequest。在方法内部,您正在分配bankRequest一个值。

有些人认为在方法体内为参数赋值是一种不好的方法,因为它有时会令人困惑。一些开发人员更喜欢始终假设在方法运行期间从未为参数分配任何值。

为了避免这种情况,您可以声明一个类型的替代变量BankDTO

BankDTO updatedRequest = bankRequest;
...
...
updatedRequest = reloadBankRequest(bankRequest, fee);
...
...
return updatedRequest;
Run Code Online (Sandbox Code Playgroud)