gpt4 book ai didi

java - 如何传入/使用.Class/Object作为方法参数

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:13 24 4
gpt4 key购买 nike

我有各种 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();
}
}

如何修改它才能工作?

最佳答案

感谢大卫康拉德的提示

这是一个可行的解决方案

 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();
}
}

关于java - 如何传入/使用.Class/Object作为方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54716481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com