-
Notifications
You must be signed in to change notification settings - Fork 5
References
Checker Framework. The Checker Framework Manual, links to which I sprinkled throughout the text, is an excellent resource worth scrolling through.
null. Tony Hoare, the inventor of the null reference famously called his
invention his ‘billion-dollar
mistake’.
Assorted remarks about the dangers of null are pervasive in the printed Java
literature. Some useful online resources include the Guava wiki page ‘Using and
avoiding
null’, and
the topical questions and answers on the Programmers Stack Exchange, ‘Are null
references really a bad thing?’
and ‘If null is bad, why do modern languages implement
it?’. Discussions of the
Optional class tend to remark on null and the problems associated with it:
I’ve found the articles by Edwin Dalorzo, ‘Java 8 Optional
Objects’, and
Benjamin Winterberg, ‘Avoiding Null Checks in Java
8’, useful.
Java platform developer Stuart Marks talks about Optional at JavaOne
2015.
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 over the 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.
Research. The Checker Framework comes out of academia, and there are lots of interesting papers about nullness analyses in Java out there. The ‘Publications’ section in the Checker Framework manual has papers about the Checker Framework itself, and Patrice Chalin and Perry James’s ‘Non-Null References by Default in Java: Alleviating the Nullity Annotation Burden’ may be a good starting point for some empirical findings about the nullability of references in Java.