Object o = new Object() {
    public boolean equals(Object obj) {
        return true;
    }
};
你的object里面重写了equals方法,里面的equals方法恒为true了。

解决方案 »

  1.   

    明白了,是o这个对象里面的equals方法被覆写了,对吧!谢谢!
      

  2.   

    你内部类已经重写Equals方法,返回值为true,怎么可能还有其他可能性
      

  3.   

    你的理解是对的,就是这样。你让它恒返回true,所以比较什么对象就无所谓了,都是true了。
      

  4.   

    new Object() {/*......*/}是继承Object的匿名类,不是Object。
      

  5.   

    你重写了equals方法,让它恒返回true值,这里出问题了!
      

  6.   

    Object o = new Object()
    {

    表示 o是继承了Object的匿名子类了
      

  7.   

    本来就应该是true啊,o对象调用其equals方法,这个方法你改写了,直接返回true,所以你调用equals()自然是返回true的