Java Reflection Method Parameter getMethod(Class clazz, String methodName, Class... parameterTypes)

Here you can find the source of getMethod(Class clazz, String methodName, Class... parameterTypes)

Description

We cannot use clazz.getMethod(String name, Class...

License

Open Source License

Declaration

private static Method getMethod(Class clazz, String methodName, Class<?>... parameterTypes) 

Method Source Code

//package com.java2s;
/*//  w ww  . ja  va  2s.c o m
 * Copyright (C) 2013 Pascal Mazars
 * 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.reflect.Method;

public class Main {
    /**
     * We cannot use <code>clazz.getMethod(String name, Class<?>... parameterTypes)</code> because it only returns public methods.
     */
    private static Method getMethod(Class clazz, String methodName, Class<?>... parameterTypes) {
        Class currentClass = clazz;
        while (currentClass != null) {
            try {
                Method method = currentClass.getDeclaredMethod(methodName, parameterTypes);
                method.setAccessible(true);
                return method;
            } catch (NoSuchMethodException e) {
                currentClass = currentClass.getSuperclass();
            }
        }
        throw new RuntimeException(new NoSuchMethodException(methodName));
    }
}

Related

  1. getMethod(Class aClass, String methodName, Class[] parameterTypesToCheck, Class stopClass)
  2. getMethod(Class aClass, String name, Class... parameters)
  3. getMethod(Class cl, String methodName, String obfName, Class... parameterTypes)
  4. getMethod(Class clazz, String methodName, Class... parameterTypes)
  5. getMethod(Class clazz, String name, Class... parameterTypes)
  6. getMethod(Class clazz, String name, Class[] parameters)
  7. getMethod(Class declaringClass, String name, Class... parameterTypes)