Java 如何在使用Firestore时实现toObject()方法泛型?

Java 如何在使用Firestore时实现toObject()方法泛型?,java,android,firebase,generics,google-cloud-firestore,Java,Android,Firebase,Generics,Google Cloud Firestore,如何使这个getData(String)方法更通用,以便我可以在其中传递任何类型的POJO类。我想将泛型类型类Model传递到 case ADDED: Model model = dc.getDocument().toObject(Class<Model>); Model.classshows无法从类型变量中选择,而class仅显示错误 这是代码 public List<Model> getData(String path){ db.collecti

如何使这个getData(String)方法更通用,以便我可以在其中传递任何类型的POJO类。我想将泛型类型类Model传递到

case ADDED:
     Model model = dc.getDocument().toObject(Class<Model>);
Model.class
shows无法从类型变量中选择,而
class
仅显示错误

这是代码

public List<Model> getData(String path){

    db.collection(path)
            .addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots,
                            @Nullable FirebaseFirestoreException e) {

            if (e != null || queryDocumentSnapshots == null)
                return;

            List<DocumentChange> documentChanges = queryDocumentSnapshots.getDocumentChanges();

            if(documentChanges.size() != 0 && mAdapter != null) {

                List<Model> newList = new ArrayList<>(oldData);

                for (DocumentChange dc : documentChanges) {
                    switch (dc.getType()) {
                        case ADDED:
                            Model model = dc.getDocument().toObject(Class<Model>);
                            newList.add(model);
                            break;
                        case MODIFIED:
                            Model model1 = dc.getDocument().toObject(Model.class);
                            newList.set(model1);
                            break;
                        case REMOVED:
                            Log.d("debug","REMOVED");
                            break;
                    }
                }

            }
        }
    });
}
public List getData(字符串路径){
db.collection(路径)
.addSnapshotListener(新的EventListener(){
@凌驾
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots,
@可为空的FireBaseFireStore异常(e){
如果(e!=null | | queryDocumentSnapshots==null)
返回;
List documentChanges=queryDocumentSnapshots.getDocumentChanges();
if(documentChanges.size()!=0&&mAdapter!=null){
List newList=新阵列列表(旧数据);
对于(文档更改dc:documentChanges){
开关(dc.getType()){
案件补充:
模型=dc.getDocument().toObject(类);
添加(模型);
打破
案例修改:
model1=dc.getDocument().toObject(Model.class);
newList.set(model1);
打破
已删除的案例:
Log.d(“调试”、“删除”);
打破
}
}
}
}
});
}

你找到解决方案了吗?没有@Yupi不是是的你找到解决方案了吗?没有@Yupi还没有
public List<Model> getData(String path){

    db.collection(path)
            .addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots,
                            @Nullable FirebaseFirestoreException e) {

            if (e != null || queryDocumentSnapshots == null)
                return;

            List<DocumentChange> documentChanges = queryDocumentSnapshots.getDocumentChanges();

            if(documentChanges.size() != 0 && mAdapter != null) {

                List<Model> newList = new ArrayList<>(oldData);

                for (DocumentChange dc : documentChanges) {
                    switch (dc.getType()) {
                        case ADDED:
                            Model model = dc.getDocument().toObject(Class<Model>);
                            newList.add(model);
                            break;
                        case MODIFIED:
                            Model model1 = dc.getDocument().toObject(Model.class);
                            newList.set(model1);
                            break;
                        case REMOVED:
                            Log.d("debug","REMOVED");
                            break;
                    }
                }

            }
        }
    });
}