weld/common/src/main/java/org/jboss/as/weld/util/Reflections.java
public static boolean containsAnnotation(Class<?> javaClass, Class<? extends Annotation> requiredAnnotation) {
        for (Class<?> clazz = javaClass; clazz != null && clazz != Object.class; clazz = clazz.getSuperclass()) {
            // class level annotations
            if (clazz == javaClass || requiredAnnotation.isAnnotationPresent(Inherited.class)) {
                if (containsAnnotations(clazz.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
            }
            // fields
            for (Field field : clazz.getDeclaredFields()) {
                if (containsAnnotations(field.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
            }
            // constructors
            for (Constructor<?> constructor : clazz.getConstructors()) {
                if (containsAnnotations(constructor.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
                for (Annotation[] parameterAnnotations : constructor.getParameterAnnotations()) {
                    if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                        return true;
                    }
                }
            }
            // methods
            for (Method method : clazz.getDeclaredMethods()) {
                if (containsAnnotations(method.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
                for (Annotation[] parameterAnnotations : method.getParameterAnnotations()) {
                    if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
public static boolean containsAnnotation(Class<?> javaClass, Class<? extends Annotation> requiredAnnotation) {
        for (Class<?> clazz = javaClass; clazz != null && clazz != Object.class; clazz = clazz.getSuperclass()) {
            // class level annotations
            if (clazz == javaClass || requiredAnnotation.isAnnotationPresent(Inherited.class)) {
                if (containsAnnotations(clazz.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
            }
            // fields
            for (Field field : clazz.getDeclaredFields()) {
                if (containsAnnotations(field.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
            }
            // constructors
            for (Constructor<?> constructor : clazz.getConstructors()) {
                if (containsAnnotations(constructor.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
                for (Annotation[] parameterAnnotations : constructor.getParameterAnnotations()) {
                    if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                        return true;
                    }
                }
            }
            // methods
            for (Method method : clazz.getDeclaredMethods()) {
                if (containsAnnotations(method.getAnnotations(), requiredAnnotation)) {
                    return true;
                }
                for (Annotation[] parameterAnnotations : method.getParameterAnnotations()) {
                    if (containsAnnotations(parameterAnnotations, requiredAnnotation)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
public static boolean containsAnnotation ( Class < ? > javaClass , Class < ? extends Annotation > requiredAnnotation ) { for ( Class < ? > clazz = javaClass ; clazz != null && clazz != Object . class ; clazz = clazz . getSuperclass ( ) ) { // class level annotations if ( clazz == javaClass || requiredAnnotation . isAnnotationPresent ( Inherited . class ) ) { if ( containsAnnotations ( clazz . getAnnotations ( ) , requiredAnnotation ) ) { return true ; } } // fields for ( Field field : clazz . getDeclaredFields ( ) ) { if ( containsAnnotations ( field . getAnnotations ( ) , requiredAnnotation ) ) { return true ; } } // constructors for ( Constructor < ? > constructor : clazz . getConstructors ( ) ) { if ( containsAnnotations ( constructor . getAnnotations ( ) , requiredAnnotation ) ) { return true ; } for ( Annotation [ ] parameterAnnotations : constructor . getParameterAnnotations ( ) ) { if ( containsAnnotations ( parameterAnnotations , requiredAnnotation ) ) { return true ; } } } // methods for ( Method method : clazz . getDeclaredMethods ( ) ) { if ( containsAnnotations ( method . getAnnotations ( ) , requiredAnnotation ) ) { return true ; } for ( Annotation [ ] parameterAnnotations : method . getParameterAnnotations ( ) ) { if ( containsAnnotations ( parameterAnnotations , requiredAnnotation ) ) { return true ; } } } } return false ; }
A simple implementation of the {@link org.jboss.weld.resources.spi.AnnotationDiscovery#containsAnnotation(Class, Class)} contract.
This implementation uses reflection.

@see org.jboss.as.weld.discovery.WeldAnnotationDiscovery
A simple implementation of the { @link org . jboss . weld . resources . spi . AnnotationDiscovery#containsAnnotation ( Class Class ) } contract . This implementation uses reflection .