Java Reflection Annotation getAnnotationRecursive(Class cls, Class annotationClass)

Here you can find the source of getAnnotationRecursive(Class cls, Class annotationClass)

Description

get Annotation Recursive

License

Apache License

Declaration

public static <T extends Annotation> T getAnnotationRecursive(Class<?> cls, Class<T> annotationClass) 

Method Source Code

//package com.java2s;
/*/*from w  w  w.ja  v  a 2  s  .c  om*/
 * Copyright 2010 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.lang.annotation.Annotation;

public class Main {
    public static <T extends Annotation> T getAnnotationRecursive(Class<?> cls, Class<T> annotationClass) {
        T annotation = cls.getAnnotation(annotationClass);
        if (annotation != null)
            return annotation;
        if (Object.class.equals(cls))
            return null;
        return getAnnotationRecursive(cls.getSuperclass(), annotationClass);
    }
}

Related

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