@Documented @Retention(value=RUNTIME) @Target(value=FIELD) public @interface Unused
This property is verified by the checker that type-checks the when
element value qualifier.
Example
Consider a class, Table
, with a locking field, lock
. The
lock is used when a Table
instance is shared across threads. When
running in a local thread, the lock
field ought not to be used.
You can declare this behavior in the following way:
class Table {
private @Unused(when=LocalToThread.class) final Lock lock;
...
}
The checker for @LocalToThread
would issue an error for the following code:
@LocalToThread Table table = ...; ... table.lock ...;
Modifier and Type | Required Element and Description |
---|---|
Class<? extends Annotation> |
when
The field that is annotated with @Unused may not be accessed via a
receiver that is annotated with the "when" annotation.
|
public abstract Class<? extends Annotation> when