- java.lang.reflect Package Classes
- java.lang.reflect - Home
- java.lang.reflect - AccessibleObject
- java.lang.reflect - Array
- java.lang.reflect - Constructor<T>
- java.lang.reflect - Field
- java.lang.reflect - Method
- java.lang.reflect - Modifier
- java.lang.reflect - Proxy
- java.lang.reflect Package Extras
- java.lang.reflect - Interfaces
- java.lang.reflect - Exceptions
- java.lang.reflect - Error
- java.lang.reflect Useful Resources
- java.lang.reflect - Quick Guide
- java.lang.reflect - Useful Resources
- java.lang.reflect - Discussion
java.lang.reflect.Method.getParameterAnnotations() Method Example
Description
The java.lang.reflect.Method.getParameterAnnotations() method returns an array of arrays that represent the annotations on the formal parameters, in declaration order, of the method represented by this Method object. (Returns an array of length zero if the underlying method is parameterless. If the method has one or more parameters, a nested array of length zero is returned for each parameter with no annotations.) The annotation objects contained in the returned arrays are serializable. The caller of this method is free to modify the returned arrays; it will have no effect on the arrays returned to other callers.
Declaration
Following is the declaration for java.lang.reflect.Method.getParameterAnnotations() method.
public Annotation[][] getParameterAnnotations()
Returns
the simple name of the underlying member.
Example
The following example shows the usage of java.lang.reflect.Method.getParameterAnnotations() method.
Live Demopackage com.tutorialspoint; import java.lang.annotation.Annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; public class MethodDemo { public static void main(String[] args) { Method[] methods = SampleClass.class.getMethods(); Annotation[][] annotations = methods[1].getParameterAnnotations(); for(Annotation[] annotation1 : annotations){ for(Annotation annotation : annotation1){ if(annotation instanceof CustomAnnotation){ CustomAnnotation customAnnotation = (CustomAnnotation) annotation; System.out.println("name: " + customAnnotation.name()); System.out.println("value: " + customAnnotation.value()); } } } } } @CustomAnnotation(name = "SampleClass", value = "Sample Class Annotation") class SampleClass { private String sampleField; public String getSampleField() { return sampleField; } public void setSampleField(@CustomAnnotation(name="sampleClassMethod", value = "Sample Method Annotation") String sampleField) { this.sampleField = sampleField; } } @Retention(RetentionPolicy.RUNTIME) @interface CustomAnnotation { public String name(); public String value(); }
Let us compile and run the above program, this will produce the following result −
name: sampleClassMethod value: Sample Method Annotation