code: public static Method getMatchingAccessibleMethod(Class<?> clazz, String methodName, Class<?>[] paramTypes) {
          return getMatchingAccessibleMethod(clazz, methodName, null, paramTypes);
      }
docs: <p>Find an accessible method that matches the given name and has compatible parameters.
  Compatible parameters mean that every method parameter is assignable from
  the given parameters.
  In other words, it finds a method with the given name
  that will take the parameters given.
  
  <p>This method is slightly undeterminstic since it loops
  through methods names and return the first matching method.</p>
  
  <p>This method can match primitive parameter by passing in wrapper classes.
  For example, a {@code Boolean} will match a primitive {@code boolean}
  parameter.
  
  @param clazz find method in this class
  @param methodName find method with this name
  @param paramTypes find method with compatible parameters
  @return the accessible method