@SubtypeOf(value=GuardedByUnknown.class) @Documented @DefaultQualifierInHierarchy @DefaultFor(value={EXCEPTION_PARAMETER,UPPER_BOUND}) @DefaultInUncheckedCodeFor(value=PARAMETER) @Retention(value=RUNTIME) @Target(value={TYPE_USE,TYPE_PARAMETER}) public @interface GuardedBy
@GuardedBy({})
is the default type qualifier.
The argument is a string or set of strings that indicates the
expression(s) that must be held, using the syntax
of Java expressions described in the manual.
The expressions evaluate to an intrinsic (built-in, synchronization)
monitor or an explicit Lock
. The
expression "<self>"
is also permitted; the type
@GuardedBy("<self>") Object o
indicates that the value
referenced by o
is guarded by the intrinsic (monitor) lock of
the value referenced by o
.
Two @GuardedBy
annotations with different argument expressions
are unrelated by subtyping.
Holding
public abstract String[] value