// Reusable forwarding class public class ForwardingSet<E> implements Set<E>
Should be abstract? Instantiating this directly has no value, so may as well prevent that. It would also prevent the confusion of potential consumers about what this class does.