我有各种 CSV 文件,代表需要添加到 Cloud FireStore 的不同类。我使用 CSV 例程库将 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 文件/类/Cloud Firestore 元组创建一个可以使用参数调用的方法。传入 csv 文件名和 Cloud Firestore 集合路径很容易,但我在上课时遇到了麻烦。它在 for-each 循环中发挥了两次作用——一次作为对象,一次作为“.class”事物。这是我到目前为止所拥有的(不编译)。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(); }}如何修改它才能工作?
1 回答

撒科打诨
TA贡献1934条经验 获得超2个赞
这是一个有效的解决方案
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();
for (Object obj : routines.iterate(cl, is)) {
firestore.collection(path).add(obj);
}
} catch(IOException ex){
System.out.println("Exception");
ex.printStackTrace();
}
}
添加回答
举报
0/150
提交
取消