| Annotation Type | Description | 
|---|---|
| ClassBound | 
 This represents a  
Class<T> object whose run-time value is equal to or a subtype of one of
 the arguments. | 
| ClassVal | 
 This represents a  
Class<T> object where the set of possible values
 of T is known at compile time. | 
| ClassValBottom | 
 The bottom type in the ClassVal type system. 
 | 
| ForName | 
 Annotation for methods like  
Class.forName. | 
| GetClass | 
 Annotation for methods like  
Object.getClassName. | 
| GetConstructor | 
 Annotation for methods like  
Class.getConstructor, whose signature is: @MethodVal{@code (classname=c, methodname=" | 
| GetMethod | 
 Annotation for methods like  
Class.getMethod and Class.getDeclaredMethod, whose
 signature is: {@link MethodVal}(classname=c, methodname=m, params=p) Method getMyMethod(Class  | 
| Invoke | 
 Annotation for methods like  
Method.invoke, whose signature is: Object method({@link MethodVal}(classname=c, methodname=m, params=p) Method this, Object obj, Object...  | 
| MethodVal | 
 This represents a set of  
Method or Constructor values. | 
| MethodValBottom | 
 The bottom type in the MethodVal type system. 
 | 
| NewInstance | 
 Annotation for methods like  
Constructor.newInstance, whose signature is: T method(MethodVal{@code (classname=c, methodname=" | 
| UnknownClass | 
 Represents a Class object whose run-time value is not known at compile time. 
 | 
| UnknownMethod | 
 Represents a  
Method or Constructor expression whose run-time value is not known at compile time. |