public boolean equals(Object obj) 
的参数不是一个Object 吗?
为什么下面的代码会print  true.  why????Integer a = new Integer(45);
System.out.println(a.equals(45));   //true
 
Double b = new Double(45.0);
System.out.println(b.equals(45.0));   //true
System.out.println(b.equals(45));   //false不是说equals只能用于Object对象引用吗?  who能帮我解答一下吗?thank you

解决方案 »

  1.   

    哪里不明白啊?
    equals确实是Object类的方法,其返回值为boolean型,所以当你从一个对象上调用equals时,它返回的要么是true,要么是false。
      

  2.   

    哦,明白了,你是问那个参数啊?
    这个是从JAVA1.5开始的,内建类型和它们的包装类型之间(比如int变量和Integer类的对象之间)可以自动装箱,自动拆箱。(boxing, unboxing)
      

  3.   

    JDK1.5开始,有时候可以用int代替Integer、double代替Double
      

  4.   

    Integer a = new Integer(45);
    System.out.println(a.equals(45));   //true45做为参数传递过去时,由于形参声明为一个Object
    45会自动装箱成一个Integer对象。
      

  5.   

    thanks all of you 
    i know now ;
      

  6.   

    简单来说这里的Integer 和Double就是对象类型了 明白了吗
      

  7.   

    接上面的 45自动装箱后与对象类型的比较就没问题了 JDK1.5新特性