Java autoboxing and ternary operator madness
Just spent a frustrating couple of hours debugging this code: LinkedHashMap<String, Integer> rsrqs = new LinkedHashMap<String, Integer>(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : -1; The above produces a NullPointerException. The below code doesn't: LinkedHashMap<String, Integer> rsrqs = new LinkedHashMap<String, Integer>(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : Integer.valueOf(-1); The only difference is wrapping the -1 with Integer.valueOf(). I'm sure I'm going to smack my forehead