In practice, there are plenty of static analysis programs that will give you the same thing at compile time with @NonNull and similar annotations.
And there's 7-8 different annotations to mark nullability, all slightly different in some detail.
It's a bloody and messy hell.
Doesn't help you with third party libraries, but across an org applying that rule (and others!) typically ensures some consistency.