code: public static Method getAccessibleMethod(
              Class<?> clazz,
              String methodName,
              Class<?>[] parameterTypes) {
  
          try {
              MethodDescriptor md = new MethodDescriptor(clazz, methodName, parameterTypes, true);
              // Check the cache first
              Method method = getCachedMethod(md);
              if (method != null) {
                  return method;
              }
  
              method =  getAccessibleMethod
                      (clazz, clazz.getMethod(methodName, parameterTypes));
              cacheMethod(md, method);
              return method;
          } catch (NoSuchMethodException e) {
              return (null);
          }
      }
docs: <p>Return an accessible method (that is, one that can be invoked via
  reflection) with given name and parameters.  If no such method
  can be found, return <code>null</code>.
  This is just a convenient wrapper for
  {@link #getAccessibleMethod(Method method)}.</p>
  
  @param clazz get method from this class
  @param methodName get method with this name
  @param parameterTypes with these parameters types
  @return The accessible method