Hi, here is the question: Given these code snippets, 1. Boolean b1=new Boolean(true); 2. Boolean b2=new Boolean(true); which expressions are legal JAVA expressions that return true? Select all valid answers. a. b1==b2 b. b1.equals(b2) c. b1 & b2 d. b1 || b2 why just b is correct? not C or d? thanks Krussi
c causes a compile error because b1 and b2 are not numeric values
d causes a compile error because b1 is Boolean, the wrapper class, and not boolean, the primitive type.
Hope your doubt is cleared, Francisco [ May 28, 2002: Message edited by: Francisco A Guimaraes ]
Francisco<br />SCJP<br />please use the [code][/code] tags when showing code.Click <a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=ubb_code_page" target="_blank" rel="nofollow">here</a> to see an example.
because you're talking about the WRAPPER class Boolean, not the PRIMITIVE class boolean. Therefore you need to compare them like objects --> with the .equals(Object) method "Returns true if and only if the argument is not null and is a Boolean object that represents the same boolean value as this object." the equality operator and comparitive operators ==, & and || require the two values to be of the primitive type boolean. If you wanted to do those comparisons with the Wrapper class Boolean you'd need to adjust them to this: b1.booleanValue() == b2.booleanValue(); b1.booleanValue() & b2.booleanValue(); b1.booleanValue() || b2.booleanValue();