Avoid loosing genericTypeArgs passed to methods, while resolving generics
Test to ensure elements of produced collection are not null
Avoid loosing generic type arguments, when constructing generic types recursively
Ensure that array element fields are non-null values
Class(T arg) maps into Class(Object arg) at construction time,
get argument type from generic type parameters, if possible
Test to ensure type of generic type class' field