import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; class A { List<Object> myList1 = new ArrayList<>(); // Compliant List<Object> myList2 = new ArrayList<Object>(); // Noncompliant [[sc=39;ec=47]] {{Replace the type specification in this constructor call with the diamond operator ("<>").}} void foo() { List<Object> myList; myList = new ArrayList<>(); // Compliant myList = new ArrayList<Object>(); // Noncompliant [[sc=27;ec=35]] List<String> strings1 = new ArrayList<>(); // Compliant List<String> strings2 = new ArrayList<String>(); // Noncompliant [[sc=42;ec=50]] Map<String,List<Integer>> map1 = new HashMap<>(); // Compliant Map<String,List<Integer>> map2 = new HashMap<String,List<Integer>>(); // Noncompliant [[sc=49;ec=71]] List myOtherList = new ArrayList<Object>(); // Compliant new A().myList1 = new ArrayList<>(); // Compliant new A().myList1 = new ArrayList<Object>(); // Noncompliant [[sc=36;ec=44]] List<Object>[] myArrayOfList = new List[10]; myArrayOfList[0] = new ArrayList<>(); // Compliant myArrayOfList[1] = new ArrayList<Object>(); // Noncompliant [[sc=37;ec=45]] new ArrayList<Object>().add(new Object()); // Compliant ((List<Object>) new ArrayList<Object>()).isEmpty(); // Noncompliant [[sc=34;ec=42]] ((List<Object>) new ArrayList<>()).isEmpty(); // Compliant Iterator<Object> iterator = new Iterator<Object>() { // Compliant - anonymous classes requires to be typed }; MyUnknownVariable = new ArrayList<Object>(); // Compliant } List<Object> qix(boolean test) { List<Object> myList = test ? new ArrayList<>() : // Compliant new ArrayList<Object>(); // Compliant - using diamond operator only works with java 8 myList = new ArrayList<>(test ? new ArrayList<>() : new ArrayList<Object>(5)); // Compliant if (test) { return new ArrayList<>(); // Compliant } return new ArrayList<Object>(); // Noncompliant [[sc=25;ec=33]] } }