Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SJCP question

 
mohit rastogi
Greenhorn
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" );
else
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