java.util.concurrent.atomic.AtomicLongFieldUpdaterjava.util.concurrent.atomic.AtomicIntegerFieldUpdaterjava.util.concurrent.atomic.AtomicReferenceFieldUpdaterstatic final でないものを報告します。
1 つのクラスのすべてのインスタンスで volatile フィールドを更新するのに必要なアトミックフィールドアップデーターは 1 つだけなので、これらの型はほとんどの場合に static にすることができます。
アップデーターを final にすると、JVM がアクセスを最適化してパフォーマンスを向上させることができます。
例:
class Main {
private volatile int id;
private AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}
クイックフィックス適用後:
class Main {
private volatile int id;
private static final AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}