У меня есть различные CSV-файлы, представляющие разные классы, которые необходимо добавить в Cloud FireStore.Я использую библиотеку CSV Routines для преобразования записей CSV из определенного файла CSV в объекты определенного класса, а затем добавляю каждый объект в определенную коллекцию Cloud FireStore
Этот код работает
try {
InputStreamReader is = new InputStreamReader(getAssets()
.open("fullvar3.csv"));
CsvRoutines routines = new CsvRoutines();
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
for (Variety v : routines.iterate(Variety.class, is)) {
firestore.collection("/static/test/DFLKJDF39494/varieties").add(v);
}
} catch(IOException ex){
System.out.println("Exception");
ex.printStackTrace();
}
Существует довольно много CSV-файлов, каждый из которых представляет свой класс.В Cloud FireStore также есть различные соответствующие коллекции, в которые необходимо добавить содержимое.
Я хотел бы создать один метод, который можно вызывать с параметрами для каждого кортежа CSV-файлов / классов / облачных хранилищ.Передать имя файла csv и путь к Cloud Firestore Collection достаточно просто, но у меня возникли проблемы с классом.Он вступает в игру дважды в цикле for-each - один раз как объект и один раз как «класс».Вот что у меня есть (не компилируется).
public void addToCloudStore(String filename, String path, Class cl){
try {
InputStreamReader is = new InputStreamReader(getAssets()
.open(filename));
CsvRoutines routines = new CsvRoutines();
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
Object obj = new Object();
cl.cast(obj);
for (obj : routines.iterate(cl, is)) {
firestore.collection(path).add(obj);
}
} catch(IOException ex){
System.out.println("Exception");
ex.printStackTrace();
}
}
Как это можно изменить для работы?