2017-08-28 10 views
0

私のシニアである同僚によって書かれたいくつかのコードをレビューしていました。「プライベートファイナル」クラスフィールドとその使用のためのJava命名規則

public class SomeProcessingServiceUT { 
    private final String modelNumber = "ABC01"; 
    private final String serialNumber = "000002"; 
    private final String PrimaryId = "15033520583"; 
    private final String CheckinTime ="20021010:00-05"; 
..... 
} 

そして、彼がやっていたすべてがthis.modelNumberなど何もないように、これらの変数のすべてにアクセスしたユニット・テスト・クラスでは、彼はこのようなprivate finalクラス変数を利用しました。

なぜ彼は静的な定数を宣言していないのか、どうしてなぜこのような混在した名前を使用したのかについて、彼の意図に疑問を呈したいと思います。しかし私はここでもコミュニティと疑念を分かち合うことを考えました。これはちょっと混乱します。どんな知恵が役に立つでしょう。

+1

https://codereview.stackexchange.com – nullpointer

+2

あなたは彼に尋ねましたか? –

+0

@Jacobすぐに彼に尋ねます。しかし、私はそれが悪い習慣であるかどうか最初に知りたいですか? – user2918640

答えて

-1

キーワードstaticは定数ではありません。オブジェクトにではなくクラスに付加された変数に使用されます。簡単に言うと、変数の値は作成するオブジェクトごとに同じです。ということは、classname.variableと言うとこの変数の値を変更できるということです。したがって、定数変数ではありません。

通常、静的な使用を避けたいのですが、必ずしも悪いプログラミングではありませんが、絶対に必要としない場合は使用しないでください。また、静的変数が必要な状況はほとんどなく、ほとんどの場合、より優れたクラス設計で避けられた可能性があります。

あなたの質問に答えるために、静的変数を宣言するのは妥当ではありませんが、一般的なクラスで何をしたいのか分からないのでここで間違っている可能性があります。

+0

誰かが答えを下落させました。メモリリークのために静的なものを悪用すべきではないと私は同意します。しかし、private&finalと一緒に静的と言ったものに対しては、それらを使用する多数のオブジェクトインスタンスがある場合にアプリケーション全体の定数を作成するために使用されます。 – user2918640

+0

はい私は間違いなく静的を使用して定数を作成することができますが、実際には静的キーワードdoens'tは最終的な仕事の定数変数になります。 –