Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SJCP question

mohit rastogi
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I write the question Please give me the write answer for that .

class X {
public static void main(String[ ] args) {
Boolean b1 = new Boolean( true );
boolean b2 = true;
Boolean b3 = Boolean.valueOf( "FALSE" );
Boolean b4 = Boolean.valueOf( "yes" );

if ( b1 & b2 || b3 | b4)
System.out.println( "Mercury" );
System.out.println( "Mars" );

Options :

a . Mercury
b . Mars
c . Compilation fails
d . Runtime exception

this is the Question i try it on the compiler 1.5 . the correct answer is Mercury.

But I got this form some simulator where the Question answer is as follows :
c . Compilation fails

All constructions for b1 to b4 are valid. b1 is a Boolean object (created through the Boolean wrapper class) with a value of true. b2 is a boolean primitive with value as true. b3 and b4 are both Boolean objects with the same value of false. b3 and b4 are created through the static Boolean valueOf( ) method. This method accepts primitive boolean values or case-insensitive string representation of the boolean values. If you input an unrecongized boolean value or the null literal, the valueOf( ) method will simply return a Boolean object with a false value.

Nevertheless, Boolean objects created through the Boolean wrapper class cannot be used as an expression in a boolean test. A Boolean object is not the same as a boolean primitive. Therefore, the compilation fails at the if clause. Beware of such trick question.

pls any one can reply me for this question what is the correct answer for that .
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic