KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I can see that @Nullable and @Nonnull annotations could be helpful in preventing NullPointerException s but they do not propagate very far. The effectiveness of these annotations drop off completely after one level of indirection, so if you only add a few they don't propagate very far. Since these annotations are not well enforced there is a danger of assuming a value marked with @Nonnull is not null and consequently not performing null checks. The code below causes a parameter marked with @Nonnull to be null without raising any complaints. It throws a NullPointerException when it is run. public class Clazz { public static void main(String[] args){ Clazz clazz = new Clazz(); // this line raises a complaint with the IDE (IntelliJ 11) clazz.directPathToA(null); // this line does not clazz.indirectPathToA(null); } public void indirectPathToA(Integer y){ directPathToA(y); } public void directPathToA(@Nonnull Integer x){ x.toString(); // do stuff to x } } Is there a way to make these annotations more strictly enforced and/or propagate further?
Tags (comma-separated)
Save Edits
Cancel