code: public static Method[] getMethods(Class<?> clazz, String... methodNames) {
          if (methodNames == null || methodNames.length == 0) {
              throw new IllegalArgumentException("You must supply at least one method name.");
          }
          final List<Method> methodsToMock = new LinkedList<Method>();
          Method[] allMethods = null;
          if (clazz.isInterface()) {
              allMethods = getAllPublicMethods(clazz);
          } else {
              allMethods = getAllMethods(clazz);
          }
  
          for (Method method : allMethods) {
              for (String methodName : methodNames) {
                  if (method.getName().equals(methodName)) {
                      method.setAccessible(true);
                      methodsToMock.add(method);
                  }
              }
          }
  
          final Method[] methodArray = methodsToMock.toArray(new Method[0]);
          if (methodArray.length == 0) {
              throw new MethodNotFoundException(String.format(
                      "No methods matching the name(s) %s were found in the class hierarchy of %s.",
                      concatenateStrings(methodNames), getType(clazz)));
          }
          return methodArray;
      }
docs: Get an array of {@link Method}'s that matches the supplied list of method
  names. Both instance and static methods are taken into account.
  
  @param clazz       The class that should contain the methods.
  @param methodNames Names of the methods that will be returned.
  @return An array of Method's.