Float g = new Float(4.2f);
Double d = new Double(4.2);
请问这里d.equals(g)么?为什么?  不是一般都是double d = 4.2f时才发生转型麽?

解决方案 »

  1.   

    这个可以看一下,  Double的equals方法的原码.public boolean equals(Object obj) {
    return (obj instanceof Double)   <---注意这里
           && (doubleToLongBits(((Double)obj).value) ==
          doubleToLongBits(value));
        }
    Float对象不是Double的子类,所以 这个一定返回  false.
      

  2.   

    可是答案返回的时true 这时怎么回事了?
      

  3.   

    测试显示明显输出是     false