Java Reflection Method Name getMethod(Method[] methods, String name, Class[] params)

Here you can find the source of getMethod(Method[] methods, String name, Class[] params)

Description

Returns the method matching the name.

License

Open Source License

Declaration

static private Method getMethod(Method[] methods, String name,
        Class[] params) 

Method Source Code

//package com.java2s;
/*/*from  w  w w . j a va  2  s.  c  o  m*/
 * Copyright (c) 1998-2012 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source 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.
 *
 * Resin Open Source 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, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *   Free SoftwareFoundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Scott Ferguson
 */

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class Main {
    /**
     * Returns the method matching the name.
     */
    static private Method getMethod(Method[] methods, String name) {
        Method method = null;
        for (int i = 0; i < methods.length; i++) {
            method = methods[i];

            if (!Modifier.isPublic(method.getModifiers()))
                continue;

            if (!Modifier.isPublic(method.getDeclaringClass()
                    .getModifiers()))
                continue;

            if (method.getName().equals(name))
                return method;
        }

        return null;
    }

    /**
     * Returns the method matching the name.
     */
    static private Method getMethod(Method[] methods, String name,
            Class[] params) {
        Method method = null;

        loop: for (int i = 0; i < methods.length; i++) {
            method = methods[i];

            if (!Modifier.isPublic(method.getModifiers()))
                continue;

            if (!Modifier.isPublic(method.getDeclaringClass()
                    .getModifiers()))
                continue;

            if (!method.getName().equals(name))
                continue;

            Class[] actual = method.getParameterTypes();

            if (actual.length != params.length)
                continue;

            for (int j = 0; j < actual.length; j++) {
                if (!actual[j].isAssignableFrom(params[j]))
                    continue loop;
            }

            return method;
        }

        return null;
    }
}

Related

  1. getMethod(final Class atClass, final String name, final Class[] paramType)
  2. getMethod(final Class clazz, final String methodName, final boolean factoryMethod, final boolean failIfNotFound)
  3. getMethod(final String methodName, final Class objClass, final Class[] paramClasses)
  4. getMethod(int requireMod, int bannedMod, Class clazz, String methodName, Class... params)
  5. getMethod(Method[] methods, String name)
  6. getMethod(String className)
  7. getMethod(String className, String functionName, Class[] paramTypes)
  8. getMethod(String className, String functionName, Class[] paramTypes)
  9. getMethod(String className, String methodName, Class[] params)