-
Notifications
You must be signed in to change notification settings - Fork 5
References
Notes
Some pointers.
Other Tools. The Checker Framework has not yet arrived in the mainstream Java community. In any case, other competing or complementary static analysis tools are also worth investigating. Some well-known names with various scope are SonarQube, FindBugs, PMD, Error Prone.
IDEs like Eclipse and IntelliJ IDEA have gained excellent nullness inference capabilities in recent years, and these are proudly being advertised, too (Eclipse, IntelliJ IDEA). The Checker Framework plugin for Eclipse has worked well for me and can be used without even touching a Maven POM.
null. Tony Hoare, the inventor of the null reference has famously called
his invention ‘his billion-dollar mistake’.
Assorted remarks about the dangers of null are pervasive in the Java standard
literature. I will just point to some additional resources here. We’ve linked to
the page ‘Using and avoiding
null’ on
the Guava wiki in the text. The Programmers Stack Exchange has some topical
questions ‘Are null references really a bad
thing?’ and ‘If null is bad, why
do modern languages implement
it?’ with some insightful
answers.
Discussions of Optional tend to remark on null and the problems associated
with it. Articles I’ve found useful include ‘Avoiding Null Checks in Java
8’ by Benjamin
Winterberg, ‘Java 8 Optional
Objects’ by Edwin
Dalorzo. Platform developer Stuart Marks talks about Optional at JavaOne
2015.
Research. The Checker Framework comes out of academia, and there are a few interesting papers about nullness analyses in Java out there.
todo
-
checker framework ‘publications section’
-
Patrice Chalin, Frédéric Rioux. 2005. Non-null References by Default in the Java Modeling Language. http://www.eecs.ucf.edu/~leavens/SAVCBS/2005/papers/Chalin-Rioux.pdf
-
Patrice Chalin, Perry James. 2006. Non-Null References by Default in Java: Alleviating the Nullity Annotation Burden http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.66.2966&rep=rep1&type=pdf
-
http://wiki.eclipse.org/JDT_Core/Null_Analysis, see 'hints' quote
-
David Hovemeyer, Jaime Spacco, William Pugh. 2005. Evaluating and Tuning a Static Analysis to Find Null Pointer Bugs. http://faculty.ycp.edu/~dhovemey/pubs/paste2005.pdf
-
JSR 305, Annotations for Software Defect Detection, 2006 https://jcp.org/en/jsr/detail?id=305