Reflection Java

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Main {
  /**
   * 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
   */
  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;
  }
}