Boolean object and boolean variable problem in JAVA

advertisements

I declare a Boolean variable . For example Boolean dataVal=null; Now if i execute the following code segment :

if(dataVal)
    System.out.println("\n\NULL value in dataVal: "+dataVal);
else
    System.out.println("\n\nvalue in dataVal: "+dataVal);

I get NULLPointerException. Well, i know its obvious, but i need to know the reason behind this.


When you evaluate the boolean value of a Boolean object Java unbox the value (autoboxing feature, since 1.5). So the real code is: dataVal.booleanValue(). Then it throws NullPointerException. With any boxed value, unboxing a null object throws this exception.

Before 1.5 you had to unbox the value by hand: if (dataVal.booleanValue()) so it was more evident (more verbose too :)