The results of a conditional statment will be resolved at
runtime not compile time. So, the compiler will "go" to the else if part of your statement, since it need to compile this code.
Even if you write this:
the compiler will not complain. However, you will never see the output at runtime.
...all that ever gets executed even if message value is hi, it will not print "hi is the value of message" just the contents of message.
Your conditional as it is written (assuming your println method just prints to stdout) will print the value of the message if it is not null. You will never see "hi is the value of message".
If you want it to behave differently you just need to write it in a different way. The easiest to understand would be to nest another conditional statement. In pseudo-code this would look something like:
[ October 16, 2006: Message edited by: Paul Sturrock ]