This lecture explores how Kotlin solves a problem
commonly encountered in Java applications: that of null
pointer exceptions. It looks at the separation between
nullable and non-nullable types. It considers how the safe call and
Elvis operators simplify null checking, allowing it to be done
with minimal impact on code readability. Finally, it looks at
type checking using is
and at how Kotlin can 'smart
cast' a reference after it has been subject to type checking.