-
Notifications
You must be signed in to change notification settings - Fork 6
References
Checker Framework. The Checker Framework Manual, links to which were sprinkled throughout the text, is a great resource worth scrolling through. They also have a tutorial.
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
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.
Similar tools. The Checker Framework is great, but it’s also a good idea to investigate competing or complementary tools. Some well-known names are SonarQube, FindBugs, PMD, and Error Prone. IDEs have gained excellent nullness inference capabilities over the years, and these are proudly being advertised, too (Eclipse, IntelliJ IDEA, NetBeans). The Checker Framework plugin for Eclipse works well out of the box and can be used without even touching the Maven POM.
Research. The Checker Framework comes out of academia, and there are lots of interesting papers about nullness analysis in Java out there. The ‘Publications’ section in the Checker Framework manual has papers about the Checker Framework itself. Patrice Chalin and Perry James’s ‘Non-Null References by Default in Java: Alleviating the Nullity Annotation Burden’ (2006) may be a good starting point for some empirical findings about the nullability of references in Java.