@Documented @Retention(value=RUNTIME) @Target(value={TYPE_USE,TYPE_PARAMETER}) public @interface IndexFor
For example, an expression with type @IndexFor({"a", "b"}) is non-negative and is less
 than both a.length and b.length. The sequences a and b might have
 different lengths.
 
The 
 String.charAt(int) method is declared as
 
 class String {
   char charAt(@IndexFor("this") index) { ... }
 }
 Writing @IndexFor("arr") is equivalent to writing @NonNegative
 @LTLengthOf("arr"), and that is how it is treated internally by the checker.
 Thus, if you write an @IndexFor("arr") annotation, you might see warnings about
 @NonNegative or @LTLengthOf.
NonNegative, 
LTLengthOfpublic abstract String[] value