Как реализовать метод toObject () generi c при использовании Firestore? - PullRequest
1 голос
/ 28 февраля 2020

Как сделать этот getData (String) метод genri c, чтобы я мог передать в него любой тип класса POJO. Я хотел передать обобщенный c тип класса Модель в метод toObject () в

case ADDED:
     Model model = dc.getDocument().toObject(Class<Model>);

и

case MODIFIED:
    Model model1 = dc.getDocument().toObject(Model.class);

Model.class шоу Невозможно выбрать переменную типа, и Class<Model> просто показывает ошибку.

Вот код

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

            }
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...