Why? Maybe the caller and the callee are in different packages developed by different people. Just because the API accepts null, it doesn't mean I want to emphasize that fact when calling it with true or false. "Be conservative in what you do, be liberal in what you accept from others" Or maybe the function accepts Object, as it's the case with JSONObject#put(). Surely I can pass Boolean.TRUE, but then I'm doing another thing needlessy, specifically accessing a public static member of Boolean. Between...