code: public static <T> Collection<T> cast(Collection<?> collection) {
      return collection == null ? null : new CastingCollection<T>(collection);
    }
docs: <p>Casts the elements in a collection in a lazy fashion. Changes to the returned collection are reflected in the
  the given collection.</p>
  
  @param <T>        the type parameter
  @param collection the collection to cast
  @return the casted collection or null if the collection is null