Java Reflection Method Annotation getMethodInClassWithAnnotation(Class cls, Class annotationClass, int... modifiers)

Here you can find the source of getMethodInClassWithAnnotation(Class cls, Class annotationClass, int... modifiers)

Description

Gibt die Methode aus der gegebenen Klasse mit dem gegebenen Namen, den gegebenen Argumenten zurueck und den gegebenenen Modifiern zurueck.

License

Open Source License

Parameter

Parameter Description
cls Klasse
annotationClass Annotations-Klasse
modifiers Modifier

Return

Methode

Declaration

public static ArrayList<Method> getMethodInClassWithAnnotation(Class<?> cls,
        Class<? extends Annotation> annotationClass, int... modifiers) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;

public class Main {
    /**/*  ww w  .j a  va 2  s  .co m*/
     * Gibt die Methode aus der gegebenen Klasse mit dem gegebenen Namen, den gegebenen Argumenten zurueck und den gegebenenen Modifiern zurueck.
     *
     * @param cls
     *            Klasse
     * @param annotationClass
     *            Annotations-Klasse
     * @param modifiers
     *            Modifier
     * @return Methode
     */
    public static ArrayList<Method> getMethodInClassWithAnnotation(Class<?> cls,
            Class<? extends Annotation> annotationClass, int... modifiers) {
        ArrayList<Method> methods = new ArrayList<Method>();
        for (Method m : cls.getDeclaredMethods()) {
            if (m.isAnnotationPresent(annotationClass) && hasAllModifiers(m, modifiers)) {
                methods.add(m);
            }
        }
        return methods;
    }

    /**
     * Sind alle gegebenen Modifier an der gegebenen Methode praesent.
     *
     * @param m
     *            Methode
     * @param modifiers
     *            Modifier
     * @return true, wenn ja; false, wenn nein
     */
    public static boolean hasAllModifiers(Method m, int... modifiers) {
        boolean ret = true;
        for (int mod : modifiers) {
            if ((mod & m.getModifiers()) == 0) {
                ret = false;
            }
        }
        return ret;
    }
}

Related

  1. getMethodAnnotation(Method method, Class clazz)
  2. getMethodAnnotationMap(Method method, Collection> annotationClasses)
  3. getMethodAnnotations(Method m)
  4. getMethodByAnnotation(Class cls, Class annotationClass)
  5. getMethodContainsAnnotations(Class target, Class annotation)
  6. getMethodLevelAnnotations(Class clazz, Class annotation)
  7. getMethodName(final Class annoType, final Class klazType)
  8. getMethodOrClassLevelAnnotation(Class annotationClass, Method method, Class clazz)
  9. getMethods(Annotation anno)