Ashutoshg :
Javaのシングルトンクラスでは、私は、コードの下のように、最終的な定数を作りたいです。
private final int threshold = 3;
Sonal lintが//違反コードprivate static final int THRESHOLD = 3;
// Sonarlintによって準拠したコード
私の質問は、なぜシングルトンクラスが持っている必要がありますさstatic
にキーワードをfinal
int
/ string
このクラスはインスタンスを1つだけ持っているような一定の?
Mureinik:
これはおそらく、ソナーリントが認識できないという警告です。彼らはただ、この警告を無視して、警告を発行することを選んだので、それは、静的解析とシングルトンを認識するためにはかなり難しいです。
理論的にはあなたしている権利(定数はとにかく一度だけ宣言されますので、1つのインスタンスのみが、あります)、あなたは将来のこのコードのメンテナ混乱(とこの警告を無視するように設定ソナーへの必要性を)保存したほうが良いかもしれないが、と同じようにそれを定義しstatic
、あまりにも。コンパイラは実際に私の知る限りでは、それだけでないいる、それをインライン場合にも、微細なメモリ消費の改善を得てもよいstatic final
メンバー。