Gets a method and forces it to be accessible, even if it is not in Java

Description

The following code shows how to gets a method and forces it to be accessible, even if it is not.

Example


//from   ww w.  ja  va  2 s  .c  om
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {

  public static Method getForcedAccessibleMethod(Class<?> clazz,
          String methodName, Class<?>... parameterTypes) {
      Method method;
      try {
          method = clazz.getMethod(methodName, parameterTypes);
      } catch (SecurityException e) {
          throw new RuntimeException("Cannot access method '"
                  + methodName + "' in class '" + clazz.getName()
                  + "' for security reasons", e);
      } catch (NoSuchMethodException e) {
          throw new RuntimeException("The method '"
                  + methodName + "' in class '" + clazz.getName()
                  + "' does not exist", e);
      }
      if (!method.isAccessible()) {
          method.setAccessible(true);
      }
      return method;
  }

}
  /**
   * Gets a method and forces it to be accessible, even if it is not.
   *
   * @param clazz The class from which the method will be got.
   * @param methodName The name of the method.
   * @param parameterTypes The parameter types that the method must match.
   * @return The method, if it is found.
   * @since 2.0.7
   */




















Home »
  Java Tutorial »
    Reflection »




Annotation
Array
Class
Constructor
Field
Generics
Interface
Method
Modifier
Package
Proxy