Java ClassCastException при использовании?продолжается - PullRequest
0 голосов
/ 05 октября 2018

У меня есть метод получения параметра этого типа:

NSArray<? extends FIRQueryDocumentSnapshot>

Теперь, когда я беру элемент этого массива, я получаю ClassCastException .Мой метод:

public static List<AbstractWrapper> getWrapperList(Class<? extends IAbstractWrapper> wrapper, NSArray<? extends FIRQueryDocumentSnapshot> documentSnapshotArray){
        List<AbstractWrapper> results = new ArrayList();
        for(int i=0; i<documentSnapshotArray.size(); i++){
            FIRQueryDocumentSnapshot doc = documentSnapshotArray.get(i);
            results.add(getWrapper(wrapper,doc));
        }
        return results;
    }

Ошибка в строке 4

java.lang.ClassCastException: apple.NSObject не может быть приведен к org.moe.binding.firebasefirestore.FIRQueryDocumentSnapshot

1 Ответ

0 голосов
/ 05 октября 2018

Это может произойти из-за того, что объект, который вы получаете от documentSnapshotArray.get(i), не может быть приведен к FIRQueryDocumentSnapshot. Проверьте это с помощью

System.out.println(documentSnapshotArray.get(i) instanceof FIRQueryDocumentSnapshot);  
// if true problem is something else but, 
// if false then object you are getting is not a type of FIRQueryDocumentSnapshot  

. Решение этой проблемы: -

  • если вы получаете объект, который не относится к типу FIRQueryDocumentSnapshot, вам следует исправить код, в котором генерируется documentSnapshotArray, и убедиться, что каждый элемент, помещаемый в documentSnapshotArray, должен иметь тип (IS-A) FIRQueryDocumentSnapshot.
...