PMD ツールを使用して、Java コードにエラーがある場合はそれを見つけます。PMD が提供する一般的な提案の 1 つは、「ローカル変数 {local_variable} を final として宣言できる」というものです。状態がさらに変更されない場合、すべてのローカル変数を final として宣言する必要がありますか?
2 に答える
状態がさらに変更されない場合、すべてのローカル変数を final として宣言する必要がありますか?
いいえ、匿名クラス内でその変数にアクセスする必要がある場合を除いて、必要ありません。
ローカル変数が変更されない場合、すべてのローカル変数を final にするのは良い習慣ですか?
これは明らかに主観的なものです。個人的には、コードが不必要に乱雑になり、適切なコーディング プラクティスに従えば、変数を final にする必要がないように、メソッドは十分に短く、自明である必要があると思います。
変数を明示的にfinalに設定し、final
キーワードをあちこちに表示することも言語設計の問題です。Scalaのデフォルトでは、すべてが最終的で不変であり、より機能的な設計が推進されます。なぜfinalを使用するのか疑問に思ったら、scalaを見てください-それはあなたにいくつかのアイデアを与えるはずです。
ちなみにファイナルを使わないのは悪いスタイルだと思います。最終的な変数(その意味での定数)は変更できません。それは一種のプログラミング契約です。最終変数を使用したコードでは、副作用が少なくなります。それを除外すると、すべてのプライベートフィールドを除外することもできます。なぜわざわざ?
Eclipseでは、[ソース/クリーンアップ...]ダイアログを開くと、必要なすべてのfinalフィールドと、「よりクリーン」と見なされる他の多くのものを自動的に追加できます(したがって、finalを使用しないため、 「クリーンアップ」と呼ばれます。汚れていると見なされます)。
それはあなた次第です-それを使う-またはそれを残す。それを使用してください-そして特にファイナルを適用できなかったコードを見てください。たぶん、そのコードは最終的なものに改善される可能性がありますか?
あ、はい!それは良い習慣です!