@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 String[] value
NonNull.