SONAR问题"方法参数,捕获的异常和foreach变量不应重新分配"

时间:2015-10-07 12:55:26

标签: java sonarqube

我的代码执行了SONAR扫描,我收到一个主要错误,表示"方法参数,捕获的异常和foreach变量不应该重新分配"。我不明白他们是如何被重新分配的。这是他们的解决方案吗?我得到的错误是" reportForm = new ReportForm();"在下面的代码中。

foreach

2 个答案:

答案 0 :(得分:3)

在上述行中

reportForm = new ReportForm();

reportForm是方法参数。意味着它只在本地可见。如果reportForm引用了一个作为参数传递给该行的对象,则会通过指向另一个对象而丢失此引用。而且很可能你想做别的事情。方法完成后,新创建的对象将丢失。

如果您想将对象创建委托给您的方法 - 它将无法正常工作。

答案 1 :(得分:0)

您可以通过创建一个新的本地变量(例如reportFormLocal)来解决此错误,然后根据您的检查(空,hasErrors等)将方法参数值分配给它。在其余方法中使用reportFormLocal。