Let's say one has a method that only reads from a list and when it gets something from
the list it checks that it is not null before using it.
It is therefore safe to call this method with a List<@Nullable Something> since it is guaranteed not to throw an exception even if there are nulls on the list. It is also safe to call
with List<@NonNull Something> since it will never put a null value onto the list.
Do I have to create two methods with identical content to handle both cases or is
there a way to effectively declare the method to take a parameter which is the super type of both?