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

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

    }

}

如何修改它才能工作?


慕容708150
浏览 132回答 1
1回答

撒科打诨

这是一个有效的解决方案&nbsp;public void addToCloudStore(String filename, String path, Class<?> cl){&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; InputStreamReader is = new InputStreamReader(getAssets()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .open(filename));&nbsp; &nbsp; &nbsp; &nbsp; CsvRoutines routines = new CsvRoutines();&nbsp; &nbsp; &nbsp; &nbsp; FirebaseFirestore firestore = FirebaseFirestore.getInstance();&nbsp; &nbsp; &nbsp; &nbsp; for (Object obj : routines.iterate(cl, is)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; firestore.collection(path).add(obj);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } catch(IOException ex){&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Exception");&nbsp; &nbsp; &nbsp; &nbsp; ex.printStackTrace();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java