code: public boolean isNumberTypeParameter(int index) { // contains optional generic type
          if (pathParamTypeList.size() <= index) { // avoid out of bounds
              return false;
          }
          final Class<?> parameterType = pathParamTypeList.get(index);
          if (Number.class.isAssignableFrom(parameterType)) {
              return true;
          }
          if (parameterType.isPrimitive() && Stream.of(long.class, int.class, short.class, byte.class, double.class, float.class)
                  .anyMatch(numType -> numType.isAssignableFrom(parameterType))) { // from pull request #55 (thanks!)
              return true;
          }
          final Class<?> genericType = optionalGenericTypeMap.get(index);
          return genericType != null && Number.class.isAssignableFrom(genericType);
      }
docs: #hope jflute similer to UrlPatternAnalyzer's one so want to refactor (2018/10/30)