Нужно задействовать массив листов при инициализации таким образом
List<String>[] FinishFile = new ArrayList<String>[12];
Eclipse выдал ошибку:
Cannot create a generic array of ArrayList
в итоге прокатил такой вариант
List<String>[] FinishFile = new ArrayList[12];
Почему?
Это связано с тем, что компилятор не может вам гарантировать типобезопасность (type safety) для массивов обобщенных типов, потому что массив может быть приведен к более широкому типу (с потерей информации от обобщенном типе).
Например, если бы первый вариант работал, это приводило бы к таким ситуациям:
List<Integer> ints = new ArrayList<Integer>();
ints.add(1);
List<String>[] a = new ArrayList<String>[5]; // предположим, это допустимо
Object[] o = a; // вполне разрешенный upcast, но информация о generic типе потерялась
o[0] = ints;
String s = a[0].get(0); // ошибка приведения типа во время выполнения программы
Система generics же в Java направлена на проверку типов и гарантии безопасности типов как раз на этапе компиляции. Поэтому вы будете вынуждены написать:
List<String>[] a = new ArrayList[5];
и получите Warning от компилятора и предупреждение в IDE, после которого ответственность за потенциальные ошибки перекладывается на вас.
PS. Вообще массив коллекций — довольно сомнительная практика, обычно массивы применяются для примитивных типов там, где есть какие-то вычисления или сериализация/десериализация в бинарные данные.
Используйте List<List<String>>
и живите в типобезопасном мире.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Читаю данные из json с помощью GsonИ в одном активити я хочу изменить значения ключа одного обьекта
Я пишу REST клиент, для парсинга JSON'a, я использую для этого Retrofit 2
Есть раскрывающееся по наведению курсора меню, работа которого протестированаЕсть список