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

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

Description

Searches all public, protected, package access, and private methods of a class and its superclasses for a method with the given name and parameter types.

License

Open Source License

Declaration

public static Method getMethod(Class<?> clazz, String name, Class<?>... parameterTypes) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Breakout Cave Survey Visualizer/*from   w ww  .  j  a  v  a  2 s.  c  o  m*/
 *
 * Copyright (C) 2014 James Edwards
 *
 * jedwards8 at fastmail dot fm
 *
 * 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 2 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, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *******************************************************************************/

import java.lang.reflect.Method;

import java.util.Arrays;

public class Main {
    /**
     * Searches all public, protected, package access, and private methods of a class and its superclasses for a method with the given name and parameter types.
     * {@link Class#getMethod(String, Class...)} only searches public members declared in the class.
     */
    public static Method getMethod(Class<?> clazz, String name, Class<?>... parameterTypes) {
        while (clazz != null) {
            for (Method method : clazz.getDeclaredMethods()) {
                if (method.getName().equals(name)
                        && Arrays.deepEquals(method.getParameterTypes(), parameterTypes)) {
                    return method;
                }
            }
            clazz = clazz.getSuperclass();
        }
        return null;
    }
}

Related

  1. getMethod(Class clazz, String method, Class... parameterTypes)
  2. getMethod(Class clazz, String methodName, Class... parameterTypes)
  3. getMethod(Class clazz, String methodName, 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[] parameterTypes)
  7. getMethod(Class cls, String name, Class... parameterTypes)
  8. getMethod(Class clz, String methodName, Class... parameterTypes)
  9. getMethod(Class declaringClass, String name, Class... parameterTypes)