code: public static <E> Set<E> checkedSet(Set<E> s, Class<E> type) {
          return new CheckedSet<>(s, type);
      }
docs: Returns a dynamically typesafe view of the specified set.
  Any attempt to insert an element of the wrong type will result in
  an immediate {@link ClassCastException}.  Assuming a set contains
  no incorrectly typed elements prior to the time a dynamically typesafe
  view is generated, and that all subsequent access to the set
  takes place through the view, it is <i>guaranteed</i> that the
  set cannot contain an incorrectly typed element.
  
  <p>A discussion of the use of dynamically typesafe views may be
  found in the documentation for the {@link #checkedCollection
  checkedCollection} method.
  
  <p>The returned set will be serializable if the specified set is
  serializable.
  
  <p>Since {@code null} is considered to be a value of any reference
  type, the returned set permits insertion of null elements whenever
  the backing set does.
  
  @param <E> the class of the objects in the set
  @param s the set for which a dynamically typesafe view is to be
  returned
  @param type the type of element that {@code s} is permitted to hold
  @return a dynamically typesafe view of the specified set
  @since 1.5