8

我从 Sonar 开始了我的冒险;)

具有默认配置的声纳在主要级别设置了 PMD UnnecessaryLocalBeforeReturn 错误。

    List<Todo> filtered = em.createQuery(query).getResultList();
    return filtered;

这对我来说意味着我应该在一行中更改上面的代码。

这对我来说真的很有趣,因为我建议我的同事在返回之前将这个“不必要的”本地化。

我认为它简化了调试。当我在返回行设置断点时,我确信当我到达那里时,这个值就准备好了,我不必对我的语句进行选择或执行“Step over Expression”。

此外,我相信它对减少方法中的返回点有积极影响。

我的问题是:是否有某种解释/讨论为什么 Checkstyle、PMD、FindBugs 等项目中的错误被确认为错误?

4

1 回答 1

1

如果您的目的只是查看 List 的内容,您也可以将断点放在方法的调用者中。另一种选择是设置断点并评估值(Eclipse 和 IntelliJ 做得很好)。

为什么它被认为是一种不好的做法?

您只需在不需要时添加对变量的引用。

这只会增加垃圾收集器的工作量。

于 2014-11-10T15:47:20.910 回答