code: @SuppressWarnings("unchecked")
    public static <T> Class<T> wrap(Class<T> type) {
      if (type == int.class) return (Class<T>) Integer.class;
      if (type == float.class) return (Class<T>) Float.class;
      if (type == byte.class) return (Class<T>) Byte.class;
      if (type == double.class) return (Class<T>) Double.class;
      if (type == long.class) return (Class<T>) Long.class;
      if (type == char.class) return (Class<T>) Character.class;
      if (type == boolean.class) return (Class<T>) Boolean.class;
      if (type == short.class) return (Class<T>) Short.class;
      if (type == void.class) return (Class<T>) Void.class;
      return type;
    }
docs: Returns the corresponding wrapper type of {@code type} if it is a primitive
  type; otherwise returns {@code type} itself. Idempotent.
  <pre>
  wrap(int.class) == Integer.class
  wrap(Integer.class) == Integer.class
  wrap(String.class) == String.class
  </pre>