org.apache.bsf.util

Class 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

Method Summary
static ConstructorgetConstructor(Class targetClass, Class[] argTypes)
Class.getConstructor() finds only the entry point (if any) _exactly_ matching the specified argument types.
static MethodgetMethod(Class target, String methodName, Class[] argTypes, boolean isStaticReference)
static MethodgetMethod(Object target, String methodName, Class[] argTypes)
Class.getMethod() finds only the entry point (if any) _exactly_ matching the specified argument types.

Method Detail

getConstructor

public static Constructor getConstructor(Class targetClass, Class[] argTypes)
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.

getMethod

public static Method getMethod(Class target, String methodName, Class[] argTypes, boolean isStaticReference)

getMethod

public static Method getMethod(Object target, String methodName, Class[] argTypes)
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