default equals again, sorry

Jose jgetino at
Thu Jan 23 13:02:48 PST 2014

Until now I've been able to overcome the limitation of default equals() in
interfaces, by providing a defaultEquals() everywhere. Not very elegant but
al least it works. 

But now I found an issue I don't know how to solve. I often use an idiom
like this in the deepest loops of my code to restrict object allocation to a
minimum. I call it stateless factory, but maybe there is already a more
appropriate name for it. 

interface Point(){
int x();
int y();
static Point of(int x, int y) {
   return new Point() {
       public int x() {
             return x;
       public int y() {
           return y;

Until now it was working ok, but then I found I can't make equality tests
with this construct.

Any idea on how to overcome this limitation?.

More information about the lambda-dev mailing list