castFrom<S, T> 静态方法
override
将 source
转换为 Set<T>
。
如果提供了 newSet
,它将用于创建 toSet、union 返回的新集合,并用于 intersection 和 difference。如果省略 newSet
,则默认使用默认的 Set 构造函数创建新集合,并且 intersection 和 difference 返回对源调用相同方法的修改版本。
任何时候,如果集合生成一个不是 T
的元素,元素访问将抛出异常。
任何时候尝试将 T
值添加到修改后的集合中,如果该值不是 S
的实例,存储将抛出异常。
如果 source
访问的所有元素实际上都是 T
的实例,并且添加到返回集合的所有元素实际上都是 S
的实例,那么返回的集合可以用作 Set<T>
。
接受一个或多个 Object?
作为参数的方法,如 contains、remove 和 removeAll,将直接将参数传递到该集合的方法,而不进行任何检查。
实现
static Set<T> castFrom<S, T>(Set<S> source, {Set<R> Function<R>()? newSet}) =>
CastSet<S, T>(source, newSet);