This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
However both these bits of code share another problem with your original code above - they all throw a NullPointerException if authorized is null. (And so far, there's been no code shown setting it to anything, so yes, it's probably null.) So when using a Boolean like this, you generally need to either (a) test the reference before you use it, to see if it's null, or (b) write your code in a way that ensures the variable has been set non-null before you use it. However, both of these are somewhat error prone, as people can forget to check or ensure when they modify the code. Consequently I usually prefer to use a boolean primitive rather than a Boolean object - that way there's no possibility of null. Usually that's a good thing, I think.
Boolean.TRUE is a constant that represents true as a Boolean; there is also Boolean.FALSE.
By putting it first, and calling equals on it instead of the return value of getAuthorized(), you prevent any NullPointerExceptions (NPEs). It's always best to call equals on a constant like Boolean.TRUE or a String constant just to prevent NPEs:
I would agree with Mike Simmonds; just write if (getAuthorised()) . . .
If you get a NullPointerException, that means there is another error somewhere, that you have forgotten to initialise whatever you were supposed to initialise. By the way: the preferred naming style for that sort of method is "isAuthorised()".
Joined: Apr 04, 2007
Thanks for all the help! You have given me what I needed, and taught me other stuff, too.