Java
'AtomicFieldUpdater' field not declared 'static final'
Warning
New
Last modified: 03 December 2024Reports fields of types:
java.util.concurrent.atomic.AtomicLongFieldUpdater
java.util.concurrent.atomic.AtomicIntegerFieldUpdater
java.util.concurrent.atomic.AtomicReferenceFieldUpdater
that are not static final
. Because only one atomic field updater is needed for updating a volatile
field in all instances of a class, it can almost always be static
.
Making the updater final
allows the JVM to optimize access for improved performance.
Example:
class Main {
private volatile int id;
private AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}
After the quick-fix is applied:
class Main {
private volatile int id;
private static final AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
AtomicFieldUpdaterNotStaticFinal
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?