This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Java in General and the fly likes Java Ternary Operator Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Java Ternary Operator" Watch "Java Ternary Operator" New topic

Java Ternary Operator

Jehan Jaleel
Ranch Hand

Joined: Apr 30, 2002
Posts: 196

I have been coding in Java for years but never used the Java Ternary Operator that much (always did it the hard way). Now I am playing with it but the following code is not working as I expect it to...

Right now it is throwing an Null Pointer Exception. But I am wondering why, I just want it to return the value from the Map if it finds it or return null if it doesn't.

Thanks in advance for any help.
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 38077
You need to know a lot more details.
Are you sure the Exception is actually thrown inside that method?
What sort of structure is the map: does it behave like HashMap or like Hashtable with respect to nulls?
Which reference is null? Is it the map, or the argument to that method? If the argument is a long, it is hardly likely to be null. Does the map take Longs as its Ks?
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 3003
If line 4 is the line throwing the exception, I think the only thing that could cause the problem is if adviceHeaderMap itself is null. How is this field initialized?
Jehan Jaleel
Ranch Hand

Joined: Apr 30, 2002
Posts: 196

You are right, the problem is that the HashMap itself was null. I was thinking that I was not using the Ternary operator correctly and trying to cast a null.

Thanks again for your help.
Rob Spoor

Joined: Oct 27, 2005
Posts: 19656

One piece of advice: don't call methods twice if you can instead use a variable to store the results. Let's say your map was a TreeMap with millions of records. The get could take a bit of time. By calling it twice your method takes twice as long as needed.


And in this case you will immediately see that the ternary operator isn't needed; if header != null you will return header, and otherwise (header == null) you still return the value of header.

How To Ask Questions How To Answer Questions
Winston Gutkowski

Joined: Mar 17, 2011
Posts: 7552

Rob Spoor wrote:One piece of advice: ...

@Jehan: Another piece of advice: DontWriteLongLines.

I've broken yours up this time; but the only reason I needed to is that your method names - while certainly descriptive - are a case of "descriptive overkill".

Maybe you had no choice in this case, but I'd definitely advise a bit of moderation if you're writing methods in the future.


Isn't it funny how there's always time and money enough to do it WRONG?
Articles by Winston can be found here
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 3003
Yeah, but now my earlier comment about "line 4" should be modified to be "lines 3-5".
It is sorta covered in the JavaRanch Style Guide.
subject: Java Ternary Operator
Similar Threads
why to use conditional operator " ? " ?
Problem with cell Editing of three columns
regarding ternary operator
how return value is resolved
can any one explain this