Как я могу применить имя поля к ArrayList, а затем добавить что-то в этот ArrayList - PullRequest
1 голос
/ 23 октября 2019

Хорошо, я хочу импортировать имя поля из файла CSV, а затем добавить все данные после имени файла в соответствующий ArrayList. Я знаю, как я могу спросить класс, существует ли это Поле и существует ли оно, но тогда я не знаю, как я могу затем применить имя поля и использовать .add, чтобы добавить элемент в массив Pls, помогитемой школьный проект.

try {
    scanner = new Scanner(new FileInputStream(filename), "UTF-8");
    while (scanner.hasNextLine()) {
       String line = scanner.nextLine();
       String[] splitLines = line.split(",");
       Field field = Main.class.getField("splitLines[0]");
       if(ArrayList.class.isAssignableFrom(field.getType())){
          for (int i = 0; i < splitLines.length; i++) {
              /*this is where I want to add all of the Data to the 
                corresponding array*/
          }
        }

      }

      scanner.close();

    } catch (FileNotFoundException | NoSuchFieldException e) {
        System.out.println("File not found " + filename);
    }

Я ожидаю, что смогу использовать первое слово файла CSV и преобразовать его в имя массива в классе, а затем добавить все элементы файла CSV вмассив.

1 Ответ

0 голосов
/ 23 октября 2019

Отражение обычно не является хорошим решением. Может быть, использовать карту вместо именованных массивов.

var dataByName = new HashMap<String, List<String>>();

Затем, после того, как вы прочитали и разбили строку из вашего файла.

var dataList = new ArrayList<String>();
for (int s = 1; s < splitLines.length; s++) {
    dataList.add(splitLines[s]);
}
dataByName.put(splitLines[0], dataList);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...