シングルトンJavaクラスは静的定数変数を持つことができますか?ソナーリントエラー

Ashutoshg :

Javaのシングルトンクラスでは、私は、コードの下のように、最終的な定数を作りたいです。

  1. private final int threshold = 3; Sonal lintが//違反コード
  2. private static final int THRESHOLD = 3; // Sonarlintによって準拠したコード

私の質問は、なぜシングルトンクラスが持っている必要がありますさstaticにキーワードをfinal int/ stringこのクラスはインスタンスを1つだけ持っているような一定の?

Mureinik:

これはおそらく、ソナーリントが認識できないという警告です。彼らはただ、この警告を無視して、警告を発行することを選んだので、それは、静的解析とシングルトンを認識するためにはかなり難しいです。

理論的にはあなたしている権利(定数はとにかく一度だけ宣言されますので、1つのインスタンスのみが、あります)、あなたは将来のこのコードのメンテナ混乱(とこの警告を無視するように設定ソナーへの必要性を)保存したほうが良いかもしれないが、と同じようにそれを定義しstatic、あまりにも。コンパイラは実際に私の知る限りでは、それだけでないいる、それをインライン場合にも、微細なメモリ消費の改善を得てもよいstatic finalメンバー。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=183645&siteId=1