@Documented @Retention(value=RUNTIME) @Target(value={TYPE_USE,TYPE_PARAMETER}) @SubtypeOf(value=NonNegative.class) public @interface Positive
As an example of a use-case for this type, consider the following code:
if (arr.length > 0) {
int j = arr[arr.length - 1];
}
Without the knowing that arr.length
is positive, the Index Checker cannot verify that
accessing the last element of the array is safe - there might not be a last element!