Reports generic classes with omitted type parameters. Such raw use of generic types is valid
in Java, but it defeats the purpose of type parameters and may mask bugs. This inspection mirrors the
rawtypes
warning of javac
.
Examples:
-
List list = new ArrayList<String>(); //warning: Raw use of parameterized class 'List'
list.add(1); //list of strings was created but integer was accepted as well which would lead to runtime exceptions
-
IntFunction<List<?>[]> fun = List[]::new; //no warning as it's impossible to provide type arguments during array creation
Configure the inspection:
- Use the Ignore construction of new objects option to ignore raw types used in object construction.
- Use the Ignore type casts option to ignore raw types used in type casts.
- Use the Ignore where a type parameter would not compile option to ignore the cases when a type parameter fails to compile
(for example, when creating an array or overriding a library method).
- Use the Ignore parameter types of overriding methods option to ignore type parameters used in parameters of overridden methods.
- Use the Ignore when automatic quick-fix is not available option to ignore the cases when a quick-fix is not available.
This inspection only reports if the language level of the project or module is 5 or higher.