我使用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