code: @CheckResult
      @NonNull
      public final <O> Data<O> filter(@NonNull final Class<O> type) {
          //noinspection unchecked
          return (Data<O>) new FilterData<>(this, new Predicate<Object>() {
              @Override
              public boolean apply(Object o) {
                  return type.isInstance(o);
              }
          });
      }
docs: Filter this data by class. The resulting elements are guaranteed to be of the given type.