Java 8 adds two new targets for annotations.
class MyData implements MyTypedInterface<@Limit(2) MyType> {}
new @Immutable Rock()
(@NonNull String) calculateValue()
void doSomething() throws @Critical IOException();
class MyClass<@NonNull T> {}
<@Immutable T> void process(T message);