public static String[] toStringArray(ArrayList<String> strings) { return strings.toArray(new String[0]); } public static Integer[] toIntegerArray(ArrayList<Integer> integers) { return integers.toArray(new Integer[0]); } Ведь по сути происходит тоже самое, код передает массив String длиной 0. Поскольку элементы не помещаются, создается новый массив Array и возвращается вызывающей стороне. Это только придирка валидатора или делать как у меня чем-то плохо? Результат точно такой же.