Java Reflection Annotation getAnnotationPropertyValue(Annotation a, String annotationPropertyName)

Here you can find the source of getAnnotationPropertyValue(Annotation a, String annotationPropertyName)

Description

Given an Annotation and a property name, this method finds the property method, invokes it, and returns the result

License

Open Source License

Parameter

Parameter Description
a a parameter
annotationPropertyName a parameter

Declaration

public static Object getAnnotationPropertyValue(Annotation a, String annotationPropertyName) 

Method Source Code

//package com.java2s;
/*//from   www  .jav a2  s  .  c o m
Copyright (c) 2009 Mindaugas Greibus (spantus@gmail.com)
Part of program for analyze speech signal 
http://spantus.sourceforge.net
    
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
    
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>
*/

import java.lang.annotation.Annotation;

import java.lang.reflect.Method;

public class Main {
    /**
     * Given an Annotation and a property name, this method finds the property
     * method, invokes it, and returns the result
     * 
     * @param a
     * @param annotationPropertyName
     * @return
     */
    public static Object getAnnotationPropertyValue(Annotation a, String annotationPropertyName) {
        try {
            Method[] methods = a.annotationType().getMethods();
            for (int i = 0; i < methods.length; i++) {
                if (methods[i].getName().equals(annotationPropertyName)) {
                    // Found the method
                    return methods[i].invoke(a, new Object[] {});
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

Related

  1. getAnnotationMemberType(Annotation annotation, String memberName)
  2. getAnnotationMetaAnnotated( AnnotatedElement annotatedElementClass, Class metaAnnotationToFind)
  3. getAnnotationMethods(Class annotationType)
  4. getAnnotationOfField(Field field, Class clazz)
  5. getAnnotationOuterIndecies(Class annotationClass, Annotation[][] annotations)
  6. getAnnotationRecursive(Class cls, Class annotationClass)
  7. getAnnotations(AnnotatedElement ae, Class annotationType)
  8. getAnnotations(AnnotatedElement annotated)
  9. getAnnotations(Annotation[][] annotations)