我使用PMD工具来查找Java代码中的错误(如果有的话)。 PMD给出的一个共同的建议是“局部变量{local_variable}可以被声明为最终的”。如果状态没有进一步改变,是否有必要将所有局部变量声明为final?需要了解一个PMD规则
0
A
回答
2
是否有必要将所有局部变量声明为final,如果它的状态没有进一步改变?
不,这是没有必要的,除非在一种情况下:如果您需要访问匿名类中的变量。
当所有局部变量最终没有变化时,是不是最好的做法?
这显然是主观的 - 我个人认为,它杂波的代码不必要的,如果你遵循良好的编码习惯,你的方法应该是足够短,不言自明的,以至于让你的变量最终不应要求。
1
那么这也是一个语言设计的问题,将变量明确设置为final,并且让final
关键字全部出现。在scala中默认的是让所有东西都是最终的和不可变的,从而推动更多功能的设计。如果你想知道为什么使用final,请看scala - 这应该给你一些想法。
我会认为它不好使用最后的方式。最终变量 - 从这个意义上说,是不变的或不变的。这是一种编程合同。代码中最终变量的副作用更少。如果你离开了,你也可以省去所有的私人领域。何必?
在eclipse中,当您打开对话框“Source/Clean Up ...”时,您可以自动添加所有必需的最终字段以及许多其他被视为“更清洁”的内容(所以我想它被称为“清理”因为不使用final将被认为是不洁净的)。
这取决于你 - 使用它 - 或离开它。使用它 - 并特别关注最终不能应用的代码。也许这个代码可以改进为最终的?
所以:是的!这是很好的做法!
相关问题
- 1. PMD与Maven - 如何禁用规则集中的一个规则?
- 2. 解决PMD规则集本地
- 3. 了解了火力地堡安全的需要规则
- 4. PMD规则God Class - 了解度量标准
- 5. PMD规则还需要应用Junit文件吗?
- 6. 需要java pmd规则在myeclipse中注释
- 7. 需要从eclipse中的规则中触发一个规则guvnor
- 8. PMD规则集文件
- 9. PMD规则DataflowAnomalyAnalysis奇怪
- 10. 序言 - 需要了解的规则是做
- 11. 需要一些mod_rewrite规则的帮助
- 12. 了解的CheckStyle JavadocMethod规则
- 13. 重定向规则需要
- 14. PMD多个规则集传递构建但单个规则集失败构建
- 15. 如何在规则集中创建PMD自定义规则?
- 16. 蚂蚁PMD和规则排除
- 17. 如何修改现有的PMD规则
- 18. 使用Gradle自定义PMD规则
- 19. 什么是最重要的PMD违规?
- 20. 在规则的一部分的时候,需要在规则的一部分
- 21. 需要一个重写规则帮助 - 阿帕奇
- 22. 需要帮助了解一个PHP示例,而每个人都需要
- 23. 我需要了解这个C代码
- 24. 需要帮助了解这个Python Traceback
- 25. 配置相同的PMD规则集的Eclipse-PMD作为gradle这个PMD使用 - 哪些规则集是用于net.sourceforge.pmd:PMD-java的
- 26. 需要解决一个正则表达式,它取代了太多
- 27. 需要帮助了解MEF
- 28. 我需要了解org.hibernate.HibernateException
- 29. 需要了解重定向
- 30. 需要了解MDX查询
http://stackoverflow.com/questions/1615419/what-is-the-reason-for-these-pmd-rules – 2013-02-10 09:57:10
另请参见[this discussion](http://stackoverflow.com/questions/316352) /为什么 - 会 - 一个标记,局部变量,和方法参数,为决赛,在-JAVA) – assylias 2013-02-10 10:07:32