>> Not only is there a problem with modCount, but also with >> equals/hashCode/toString. You can’t define these Object methods in an >> interface. > > They could be defined as static methods to delegate to. From API consistency > perspective, we have for example the following static methods on primitive > wrapper classes:
Right. We considered this during Lambda, but by the time we got here, we concluded that this was mostly trading one downside for another. It seemed overwhelmingly likely that people would forget to override equals/hashCode/toString in this case, and create collections that violated the contract.