16:15 - 17:15
Null pointer exceptions are the bane of programmers and have been called the "billion dollar mistake". They happen even if you think hard about your code and test it thoroughly. In this session we will discuss causes of null pointer exceptions, including their relationship to issues such as object initialization, map keys, method contracts, Java 8’s Optional class, and dynamic checks. You will learn about a simple, yet powerful, type system that prevents null pointer exceptions at compile time, turning informal reasoning into machine-checked certainty. We will illustrate these ideas using a freely-available tool called the Nullness Checker that integrates with your development environment and toolchain and has found hundreds of bugs in millions of lines of well-tested code. We will discuss alternative tools and interoperability, in particular with Kotlin. Finally, we will discuss efforts to standardize nullness specifications across the Java and Kotlin ecosystem. Bring your tricky nullness issues and see how they can be solved!