Added test cases for null checks.
Using Lombok's new support for @NonNull on parameters to eliminate
explicit null checks.
Added @NonNull annotation.
Used Lombok's new support for @NonNull annotations on constructor
parameters to eliminate an explicit null check.