Overview
Syllabus
Intro
Java's type system is too weak
Specification 1: non-null parameter
Specification 2: nullable parameter
Solution: Pluggable Type Checking
Optional Type Checking
The Checker Framework
Benefits of type systems
Comparison: other nullness tools
Java 8 extends annotation syntax
Java 6 & 7 compatibility (or avoid dependency on Checker Framework)
Lazy initialization and persistence across side effects
Map key example
Optional checks
Cost of software failures
Example: Regex Checker
Example type systems
Tips for pluggable type-checking
Pluggable type-checking improves code
Taught by
Devoxx