This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
1.Float s = new Float(0.9F); 2.Float t = new Float(0.9F); 3.Double u = new Double(0.9); 4.System.out.println(s==u); 5.System.out.println(t.equals(u)); how come the fourth line doesnt compile for incompatible reason? i think s will be changed to double and then compare with u,is that right? thanks
Two objects can only be equal if they are the same object, and they can only be the same object if they are at least the same type. You can't compare two un-like types using ==, any more than you can compare a boolean and an int using <.
Joined: Feb 06, 2002
Originally posted by Rob Ross: Two objects can only be equal if they are the same object, and they can only be the same object if they are at least the same type. You can't compare two un-like types using ==, any more than you can compare a boolean and an int using <.
Hi Michael, I thought the definition of the Api could help you ... public boolean equals(Object obj) : Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true). Parameters: obj - the reference object with which to compare. Returns : true is the object is the same as the obj argument; false otherwise Thanks...I think now it's clearer for you?