Package org.apache.bsf.util

# Class MethodUtils

java.lang.Object
org.apache.bsf.util.MethodUtils

public class MethodUtils extends Object
This file is a collection of reflection utilities for dealing with methods and constructors.

Author:
  Sanjiva Weerawarana, Joseph Kesselman

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MethodUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Constructor`
  `getConstructor(Class targetClass, Class[] argTypes)`
  Class.getConstructor() finds only the entry point (if any) _exactly_ matching the specified argument types.
  `static Method`
  `getMethod(Class target, String methodName, Class[] argTypes, boolean isStaticReference)`
  `static Method`
  `getMethod(Object target, String methodName, Class[] argTypes)`
  Class.getMethod() finds only the entry point (if any) _exactly_ matching the specified argument types.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MethodUtils

    public MethodUtils()

- ## Method Details

  - ### getConstructor

    public static Constructor getConstructor(Class targetClass, Class[] argTypes) throws SecurityException, NoSuchMethodException
    Class.getConstructor() finds only the entry point (if any) _exactly_ matching the specified argument types. Our implmentation can decide between several imperfect matches, using the same search algorithm as the Java compiler. Note that all constructors are static by definition, so isStaticReference is true.
    Throws:
      `NoSuchMethodException` - if constructor not found.
      `SecurityException`

  - ### getMethod

    public static Method getMethod(Class target, String methodName, Class[] argTypes, boolean isStaticReference) throws SecurityException, NoSuchMethodException
    Throws:
      `SecurityException`
      `NoSuchMethodException`

  - ### getMethod

    public static Method getMethod(Object target, String methodName, Class[] argTypes) throws SecurityException, NoSuchMethodException
    Class.getMethod() finds only the entry point (if any) _exactly_ matching the specified argument types. Our implmentation can decide between several imperfect matches, using the same search algorithm as the Java compiler. This version emulates the compiler behavior by allowing lookup to be performed against either a class or an instance -- classname.foo() must be a static method call, instance.foo() can invoke either static or instance methods.
    Parameters:
      `target` - object on which call is to be made
      `methodName` - name of method I'm lookin' for
      `argTypes` - array of argument types of method
    Returns:
      the desired method
    Throws:
      `SecurityException` - if security violation
      `NoSuchMethodException` - if no such method