我使用PMD工具来查找Java代码中的错误(如果有的话)。 PMD给出的一个共同的建议是“局部变量{local_variable}可以被声明为最终的”。如果状态没有进一步改变,是否有必要将所有局部变量声明为final?需要了解一个PMD规则
0
A
回答
2
是否有必要将所有局部变量声明为final,如果它的状态没有进一步改变?
不,这是没有必要的,除非在一种情况下:如果您需要访问匿名类中的变量。
当所有局部变量最终没有变化时,是不是最好的做法?
这显然是主观的 - 我个人认为,它杂波的代码不必要的,如果你遵循良好的编码习惯,你的方法应该是足够短,不言自明的,以至于让你的变量最终不应要求。
1
那么这也是一个语言设计的问题,将变量明确设置为final,并且让final
关键字全部出现。在scala中默认的是让所有东西都是最终的和不可变的,从而推动更多功能的设计。如果你想知道为什么使用final,请看scala - 这应该给你一些想法。
我会认为它不好使用最后的方式。最终变量 - 从这个意义上说,是不变的或不变的。这是一种编程合同。代码中最终变量的副作用更少。如果你离开了,你也可以省去所有的私人领域。何必?
在eclipse中,当您打开对话框“Source/Clean Up ...”时,您可以自动添加所有必需的最终字段以及许多其他被视为“更清洁”的内容(所以我想它被称为“清理”因为不使用final将被认为是不洁净的)。
这取决于你 - 使用它 - 或离开它。使用它 - 并特别关注最终不能应用的代码。也许这个代码可以改进为最终的?
所以:是的!这是很好的做法!
相关问题
- 1. 使用PMD规则
- 2. PMD与Maven - 如何禁用规则集中的一个规则?
- 3. 解决PMD规则集本地
- 4. 了解了火力地堡安全的需要规则
- 5. PMD规则God Class - 了解度量标准
- 6. 需要java pmd规则在myeclipse中注释
- 7. PMD规则还需要应用Junit文件吗?
- 8. 需要一个htaccess的重写规则
- 9. 需要一个Nginx重写规则
- 10. PMD规则DataflowAnomalyAnalysis奇怪
- 11. PMD规则集文件
- 12. 导入PMD的规则Eclipse
- 13. 需要从eclipse中的规则中触发一个规则guvnor
- 14. 序言 - 需要了解的规则是做
- 15. 了解当你有属性时需要规则变量
- 16. WordPress的重写规则需要解决
- 17. MISRA规则13.6解释需要
- 18. PMD规则:如何妥善解决这个DD-异常问题
- 19. 需要一些mod_rewrite规则的帮助
- 20. 了解的CheckStyle JavadocMethod规则
- 21. .htaccess需要重写规则
- 22. 重定向规则需要
- 23. 需要PHP规则教程
- 24. PMD多个规则集传递构建但单个规则集失败构建
- 25. 定制PMD规则不被PMD的Eclipse插件
- 26. 如何在规则集中创建PMD自定义规则?
- 27. 需要了解CMS
- 28. 如何修改现有的PMD规则
- 29. 蚂蚁PMD和规则排除
- 30. 排除build.gradle文件中的PMD规则
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