@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface AssertNonNullIfNonNull
WARNING: Type-checking for this annotation is not implemented at present.
Here is an example use:
@AssertNonNullIfNonNull("id")
{@literal @}Pure
public @Nullable Long getId() {
return id;
}
Note the direction of the implication. This annotation says that if the result is non-null, then
the variable id
is also non-null. The annotation does not say that if id
is
non-null, then the result is non-null. (There is not currently a way to say the latter, though it
would also be useful.)
You should not write a formal parameter name or this
as the argument of this
annotation. In those cases, use the PolyNull
annotation instead.
NonNull
,
PolyNull
,
NullnessChecker
public abstract String[] value