The Eclipse Java compiler does some clever reasoning about the possible null state of variables. For example, the following code will compile without complaint:
Object result = getMyObject();
result.doSomething();
However, the compiler will generate a warning that result may be null in the following:
Object result = getMyObject();
System.out.println(null == result);
result.doSomething(); // warning: result may be null
The two look the same semantically, don't they? It would appear that the compiler, as an expediency, presumes that any object returned from a call will be non-null, until it sees evidence that there is any other possibility. In the second instance, there is such evidence because the programmer has expressed concern explicitly. A clever trick, to be sure.