castFrom<S, T> 静态方法

Set<T> castFrom<S, T>(
  1. Set<S> source, {
  2. Set<R> newSet<R>()?,
})
override

source 转换为 Set<T>

如果提供了 newSet,它将用于创建 toSetunion 返回的新集合,并用于 intersectiondifference。如果省略 newSet,则默认使用默认的 Set 构造函数创建新集合,并且 intersectiondifference 返回对源调用相同方法的修改版本。

任何时候,如果集合生成一个不是 T 的元素,元素访问将抛出异常。

任何时候尝试将 T 值添加到修改后的集合中,如果该值不是 S 的实例,存储将抛出异常。

如果 source 访问的所有元素实际上都是 T 的实例,并且添加到返回集合的所有元素实际上都是 S 的实例,那么返回的集合可以用作 Set<T>

接受一个或多个 Object? 作为参数的方法,如 containsremoveremoveAll,将直接将参数传递到该集合的方法,而不进行任何检查。

实现

static Set<T> castFrom<S, T>(Set<S> source, {Set<R> Function<R>()? newSet}) =>
    CastSet<S, T>(source, newSet);