code: static Method findMethod(Class<?> clazz, String name) {
  
          checkArgumentNotNull(clazz);
          checkArgumentNotNull(name);
  
          Method foundMatch = null;
          Method foundGetMatch = null;
          Method foundIsMatch = null;
  
          for (Method method : SecurityActions.getMethods(clazz)) {
  
              if (!isMethodValid(method)) {
                  continue;
              }
  
              if (method.isBridge()) {
                  LOGGER.debug("Skipping bridge method {}", method);
                  continue;
              }
  
              if (name.equals(method.getName())) {
                  foundMatch = method;
              } else if (Reflections.matchesPrefix(name, method.getName(),
                      GET_PREFIX)) {
                  foundGetMatch = method;
              } else if (Reflections.matchesPrefix(name, method.getName(),
                      IS_PREFIX)) {
                  foundIsMatch = method;
              }
          }
  
          if (foundMatch == null) {
              foundMatch = (foundGetMatch != null ? foundGetMatch : foundIsMatch);
          }
  
          LOGGER.debug("Method for [{}] {}found on type {}: {}", name, foundMatch != null ? "" : "not ", clazz.getName(),
                  foundMatch);
          return foundMatch;
      }
docs: First tries to find a valid method with the same name, afterwards method
  following JavaBean naming convention (the method starts with
  <b>get/is</b> prefix).
  
  @param clazz
  @param name
  @return the found method or <code>null</code>