code: public static Class<?>[] collectArgTypes(final Object[] args) {
          final Class<?>[] result = new Class<?>[args.length];
          collectArgTypes(args, result, 0, 0, args.length);
          return result;
      }
docs: Returnes the types for all values.
  For {@code null}-values, the type is {@code null}.
  @param args
  @return types