My code is breaking on the following line with a nullpointerexception:
if (stringVariable.equals(null)){
Previous to this statement, I declare the stringVariable and set it to a database field.
In this statement, I am trying to detect if the field had a null
value, but unfortunately it breaks!
Any thoughts?
Use
stringVariable == null
To test whether stringVariable
is null
.
The equals
method (and every other method) requires stringVariable
to not be null
.
if stringvariable
is already null, it doesn't exist as a String
object anymore, so it won't even have a .equals
method! So in the event when stringvariable
is null, what you are really doing is null.equals(null)
, at which point you'll get the NullPointerException
because null
doesn't have a .equals()
method.
It is never wise to call a method, be it equals() or otherwise,on a variable which may be null. That is why one usually does something like:
if ( var != null && var.method(something) ) {
// var.method() was true
} else {
// var is null or var.method is false
}
In your special case it would be sufficient to do
if (stringVariable == null) {
}
when working with Strings it can pay to check out Apache Commons StringUtils .
It always pays to check out the apache commons libraries as they have lots of optimized utilities (for Strings, Collections, Dates and such) which tend to be better than home-written ones.
The equals() method does not work with null parameter.
The method needs to have an object or string as parameter.
public boolean equals(Object anObject)
Since null is not an object. Is null an Object? .
Also refer to java 7 documentation which says that equals will give result if and only if the object passed is not null.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals(java.lang.Object)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.