@Documented @Retention(value=RUNTIME) @Target(value={METHOD,CONSTRUCTOR}) @PostconditionAnnotation(qualifier=KeyFor.class) @InheritedAnnotation @Repeatable(value=EnsuresKeyFor.List.class) public @interface EnsuresKeyFor
Consider the following method from java.util.Map:
 
 @EnsuresKeyFor(value="key", map="this")
 public @Nullable V put(K key, V value) { ... }
 
 This method guarantees that key has type @KeyFor("this") after the method
 returns.
KeyFor, 
EnsuresKeyForIf| Modifier and Type | Required Element and Description | 
|---|---|
| String[] | mapReturns Java expressions whose values are maps, each of which contains each expression value as
 a key (after successful method termination). | 
| String[] | valueJava expressions that are keys in the given maps on successful method termination. | 
public abstract String[] value
@JavaExpression @QualifierArgument(value="value") public abstract String[] map