The same issue is present even without any varargs or generics present, when using plain old arrays:
String[] list1 = new String[1]; list1[0] = "hello"; Integer[] list2 = new Integer[1]; list2[0] = 1; String[][] array = {list1, null}; Object[][] array2 = array; array2[1] = list2; for(String[] l : array) { System.out.println(l[0]); } Both issues stem from these unsafe implicit conversions which don’t get a warning: private static List<?>[] implicit1(List<String>[] it) { return it; } private static Object[][] implicit2(String[][] it) { return it; } I don’t like these conversions either but I don’t see them directly relevant to introducing an Arrays.asArray()-method. If you want to try to introduce mandatory warnings for these conversions I will definitely cheer you on! -- Have a nice day, Timo Sent from Mail for Windows 10 From: fo...@univ-mlv.fr