0

PMD ツールを使用して、Java コードにエラーがある場合はそれを見つけます。PMD が提供する一般的な提案の 1 つは、「ローカル変数 {local_variable} を final として宣言できる」というものです。状態がさらに変更されない場合、すべてのローカル変数を final として宣言する必要がありますか?

4

2 に答える 2

2

状態がさらに変更されない場合、すべてのローカル変数を final として宣言する必要がありますか?

いいえ、匿名クラス内でその変数にアクセスする必要がある場合を除いて、必要ありません。

ローカル変数が変更されない場合、すべてのローカル変数を final にするのは良い習慣ですか?

これは明らかに主観的なものです。個人的には、コードが不必要に乱雑になり、適切なコーディング プラクティスに従えば、変数を final にする必要がないように、メソッドは十分に短く、自明である必要があると思います。

于 2013-02-10T09:59:55.473 に答える
1

変数を明示的にfinalに設定し、finalキーワードをあちこちに表示することも言語設計の問題です。Scalaのデフォルトでは、すべてが最終的で不変であり、より機能的な設計が推進されます。なぜfinalを使用するのか疑問に思ったら、scalaを見てください-それはあなたにいくつかのアイデアを与えるはずです。

ちなみにファイナルを使わないのは悪いスタイルだと思います。最終的な変数(その意味での定数)は変更できません。それは一種のプログラミング契約です。最終変数を使用したコードでは、副作用が少なくなります。それを除外すると、すべてのプライベートフィールドを除外することもできます。なぜわざわざ?

Eclipseでは、[ソース/クリーンアップ...]ダイアログを開くと、必要なすべてのfinalフィールドと、「よりクリーン」と見なされる他の多くのものを自動的に追加できます(したがって、finalを使用しないため、 「クリーンアップ」と呼ばれます。汚れていると見なされます)。

それはあなた次第です-それを使う-またはそれを残す。それを使用してください-そして特にファイナルを適用できなかったコードを見てください。たぶん、そのコードは最終的なものに改善される可能性がありますか?

あ、はい!それは良い習慣です!

于 2013-02-10T10:16:49.450 に答える