comparing two objects by overriding equals and hashCode
prince davies
Ranch Hand
Joined: May 08, 2009
Posts: 74
posted
0
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.
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:
(billingAddress.firstName).equals()
"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
Sheriff
Joined: Oct 13, 2005
Posts: 32675
4
posted
0
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.