Generic types shouldn’t be used raw (without type parameters) in variable declarations or return values. Doing so bypasses generic type checking, and defers the catch of unsafe code to runtime.
List myList; // Noncompliant Set mySet; // Noncompliant
List<String> myList; Set<? extends Number> mySet;