On 05/14/2015 03:05 PM, Brian Goetz wrote:
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.


The other problem is that it creates ambiguous method references,
if you have a class or an interface like:
class A {
  public static int hashCode(A a) { ... }
}

A::hashCode is ambiguous.

cheers,
Rémi

Reply via email to