好吧,我想从CSV文件导入字段的名称,然后将文件名称之后的所有数据添加到相应的ArrayList中。我知道如何询问该类是否存在以及是否存在,但是然后我不知道如何应用该字段的名称并使用.add将元素添加到数组中
请帮助我的学校项目。
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文件的所有元素添加到数组中。
最佳答案
反思通常不是一个好的解决方案。也许使用Map而不是命名数组。
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);