Package oshi.annotation.concurrent
Annotation Type Immutable
-
@Documented public @interface Immutable
The presence of this annotation indicates that the author believes the class to be immutable and hence inherently thread-safe. An immutable class is one where the state of an instance cannot be seen to change. As a result- All public fields must be
final
- All public final reference fields are either
null
or refer to other immutable objects - Constructors and methods do not publish references to any potentially mutable internal state.
String
is an immutable class, despite having an internal int that is non-final but used as a cache forString.hashCode()
.Immutable objects are inherently thread-safe; they may be passed between threads or published without synchronization.
This annotation is intended for internal use in OSHI as a temporary workaround until it is available in
jakarta.annotations
. - All public fields must be