文字列をロックとして使用しているので、オブジェクトが新しいインスタンスであることを確認したいと思います。通常、文字列を直接(二重引用符で)定義する方が効率的であるため、FindBugsは文句を言います。私のコードは次のようになります:
/** A lock for the list of inputs. */
@edu.umd.cs.findbugs.annotations.SuppressWarnings("DM_STRING_CTOR")
//We want a new String object here as this is a lock.
private final Object inputListLock = new String("inputListLock");
私はここで何か間違ったことをしていますか?Eclipse FindBugsプラグインは、これを問題として報告しています。
パターンID:DM_STRING_CTOR、タイプ:Dm、カテゴリー:PERFORMANCE java.lang.String(String)コンストラクターを使用すると、そのように構築されたオブジェクトがパラメーターとして渡された文字列と機能的に区別できないため、メモリーが浪費されます。引数Stringを直接使用してください。