This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Java in General and the fly likes comparing two objects by overriding equals and hashCode Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "comparing two objects by overriding equals and hashCode" Watch "comparing two objects by overriding equals and hashCode" New topic

comparing two objects by overriding equals and hashCode

prince davies
Ranch Hand

Joined: May 08, 2009
Posts: 74

I have one class BillingAddress and it has overriden equals method to compare two bojects of it.

But when I pass null to BillingAddress obj2 = new BillingAddress(null, "Kumar"); it throws NULL POINTER EXCEPTION. Apparently, first names are different;one is null
another one has value john; Why does it throw exception and how do i fine tune it? i cant check for null pointer exception ,but it not right way of comparing two values.i should expect null also in one of the elements at run time. It should not throw null pointer exception.

please help me out.

Wouter Oet
Saloon Keeper

Joined: Oct 25, 2008
Posts: 2700

Exceptions show the line on which the exception happens. Just output the values used on that line
and add you'll see the value which caused the NullPointerException.

In this case it is:

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46424
Your class is inappropriately named; it has nothing to do with bills, nor addresses. It is a Name class.
Are you allowing null values for first name? I don't think you ought to. But if you do, you will have to allow for them in the equals() method. Note you have a mistake about the boolean value in the equals method, too. You should be comparing the two values with the == operator first. Also use the override annotation. Also check whether obj is null. Note you have to do these checks in the correct order.I write about equals methods often enough; there are three useful links in this post.
I agree. Here's the link:
subject: comparing two objects by overriding equals and hashCode
It's not a secret anymore!