为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容708150 2022-06-23 16:19:14
我有各种 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();

    }

}


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号