code: public static ClassName defineCollection(TypeName listClazzName) {
  		try {
  			Class<?> clazz=null;
  			if (listClazzName instanceof ParameterizedTypeName) {
  				ParameterizedTypeName returnListName = (ParameterizedTypeName) listClazzName;
  				clazz = Class.forName(returnListName.rawType.toString());
  			} else {
  				clazz = Class.forName(listClazzName.toString());	
  			}						
  
  			if (clazz.isAssignableFrom(List.class)) {
  				clazz = ArrayList.class;
  			} else if (clazz.isAssignableFrom(Set.class)) {
  				clazz = LinkedHashSet.class;
  			} else if (clazz.isAssignableFrom(Collection.class)) {
  				clazz = ArrayList.class;
  			}
  
  			return ClassName.get(clazz);
  		} catch (ClassNotFoundException e) {
  			e.printStackTrace();
  		}
  		return null;
  
  	}
docs: Define collection.
  
  @param listClazzName
  the list clazz name
  @return the type name