Guava for Java has Optional. Very nice, except for Java's horrid syntax for generics.
Given an object a of type Optional<MyObject>, we write:
if (a.isPresent()){ MyObject o = a.get() }
Of course, I could still do a.get() without evaluating isPresent() and end up with an java.lang.IllegalStateException. Here, we are "reminded" to do the null check.