code: @SuppressWarnings("unchecked")
      private static boolean isParametersCompatible(final List<Class<?>> params,
                                                    final List<ParamInfo> ordinalParamInfos) {
          boolean resolution = params.size() == ordinalParamInfos.size();
          if (resolution && !params.isEmpty()) {
              final Iterator<Class<?>> paramsIt = params.iterator();
              final Iterator<ParamInfo> targetIt = ordinalParamInfos.iterator();
              while (paramsIt.hasNext()) {
                  final Class<?> type = paramsIt.next();
                  final ParamInfo paramInfo = targetIt.next();
                  if (!paramInfo.type.isAssignableFrom(type)) {
                      resolution = false;
                      break;
                  }
              }
          }
          return resolution;
      }
docs: Checking method parameters compatibility.
  
  @param params            repository method params to check against
  @param ordinalParamInfos target method ordinal params (excluding extension parameters)
  @return true if method is compatible, false otherwise