2012-03-12 1 views
0

現在、コードに「コンストラクタ内の最終的でない静的フィールドに危険な割り当てがある可能性があります」(PMDのAssignmentToNonFinalStatic)があります。「コンストラクタ内の最終的ではない静的フィールドへの危険な割り当ての可能性があります」(AssignmentToNonFinalStatic)

クラスはシングルトンクラスとして書かれ、この警告によって影響を受けるプロパティは、この

プライベート静的な文字列myPropertyにのように見えます。

とこの構造によって満たされる:

public SystemPropertyUtils() throws ConfigException { 
    someMethodThrowingConfigException(); 
    myProperty = "someValue" + this.someOtherValueFromAThreadSafeString; 
} 

は、この警告を否定するために精巧な方法はありますか?

答えて

4

コンストラクタに静的フィールドを設定しないでください。この場合、非静的フィールドを作成します。

そうしないと、コンストラクタが必要ないと思われるでしょう。代わりに、静的初期化子ブロックまたは静的メソッドで静的フィールドを初期化できます。

関連する問題