Why is this an issue?
Java 7 introduced the diamond operator (<>
) to reduce the verbosity of generics code. For instance, instead of having to declare
a List
's type in both its declaration and its constructor, you can now simplify the constructor declaration with <>
,
and the compiler will infer the type.
Note that this rule is automatically disabled when the project’s sonar.java.source
is lower than 7
.
Noncompliant code example
List<String> strings = new ArrayList<String>(); // Noncompliant
Map<String,List<Integer>> map = new HashMap<String,List<Integer>>(); // Noncompliant
Compliant solution
List<String> strings = new ArrayList<>();
Map<String,List<Integer>> map = new HashMap<>();