code: private static Class<?>[] convertArgumentTypesToPrimitive(Class<?>[] paramTypes, Object[] arguments) {
          Class<?>[] types = new Class<?>[arguments.length];
          for (int i = 0; i < arguments.length; i++) {
              Class<?> argumentType = null;
              if (arguments[i] == null) {
                  argumentType = paramTypes[i];
              } else {
                  argumentType = getType(arguments[i]);
              }
              Class<?> primitiveWrapperType = PrimitiveWrapper.getPrimitiveFromWrapperType(argumentType);
              if (primitiveWrapperType == null) {
                  types[i] = argumentType;
              } else {
                  types[i] = primitiveWrapperType;
              }
          }
          return types;
      }
docs: Convert argument types to primitive.
  
  @param paramTypes the param types
  @param arguments  the arguments
  @return the class[]