Java 如何在使用Firestore时实现toObject()方法泛型?
如何使这个getData(String)方法更通用,以便我可以在其中传递任何类型的POJO类。我想将泛型类型类Model传递到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
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;
}
}
}
}
});
}