@Documented
@Retention(value=RUNTIME)
@Target(value={METHOD,CONSTRUCTOR})
public @interface RequiresNonNull
For example:
@Nullable Object field1;
@Nullable Object field2;
@RequiresNonNull("field1")
void method1() {
field1.toString(); // OK, field1 is known to be non-null
field2.toString(); // error, might throw NullPointerException
}
void method2() {
field1 = new Object();
method1(); // OK, satisfies method precondition
field1 = null;
method1(); // error, does not satisfy method precondition
}
public abstract java.lang.String[] value
NonNull.