前提・実現したいこと
下記ソースコードのような場合にsingleton変数はstaticにするべきとIntellijIDEAやsonarQubeに言われるのですが、Handlerクラスは原則一つしかインスタンス化される事はないので、staticにする意味はないのでは?と思っています。皆さんはこういう場合どうされますでしょうか?
前提として
・Handlerクラスは一度だけインスタンス化されます。
・実際のSingletonクラスは他クラスでも使用します。
・HandlerクラスとSingletonクラスは同一パッケージ内にはありません。
・他クラスからHandlerクラス内のsingleton変数を使うことはありません。
「Handlerクラスは一度しかインスタンス化しない」というのはmainメソッドでインスタンス化しているのか、他クラスのフィールドもしくはメソッドでインスタンス化するのかというのはわかりません
IntellijIDEAやsonarQubeを使うときに毎回もやもやしていたので質問させていただきます。
該当のソースコード
パッケージA
Java
1public class Handler { 2 3 private final SingletonDeIroIro singleton = SingletonDeIroIro.INSTANCE; 4 5 public void handle() { 6 singleton.nanika(); 7 } 8 9 //...handleメソッドの他にもHandler内でsingleton変数を多用します 10 11}
パッケージB
Java
1public enum SingletonDeIroIro { 2 INSTANCE; 3 4 public void nanika() { 5 } 6 7}
JDK
GraalVM-ce11-20.0.0 windows を使用しています。
回答1件
あなたの回答
tips
プレビュー