public static Collection newCollectionInstance()

in google-http-client/src/main/java/com/google/api/client/util/Data.java [464:488]


  public static Collection<Object> newCollectionInstance(Type type) {
    if (type instanceof WildcardType) {
      type = Types.getBound((WildcardType) type);
    }
    if (type instanceof ParameterizedType) {
      type = ((ParameterizedType) type).getRawType();
    }
    Class<?> collectionClass = type instanceof Class<?> ? (Class<?>) type : null;
    if (type == null || type instanceof GenericArrayType || collectionClass != null
        && (collectionClass.isArray() || collectionClass.isAssignableFrom(ArrayList.class))) {
      return new ArrayList<Object>();
    }
    if (collectionClass == null) {
      throw new IllegalArgumentException("unable to create new instance of type: " + type);
    }
    if (collectionClass.isAssignableFrom(HashSet.class)) {
      return new HashSet<Object>();
    }
    if (collectionClass.isAssignableFrom(TreeSet.class)) {
      return new TreeSet<Object>();
    }
    @SuppressWarnings("unchecked")
    Collection<Object> result = (Collection<Object>) Types.newInstance(collectionClass);
    return result;
  }