FIRQueryDocumentSnapshot

FIRQueryDocumentSnapshot

我有一个方法得到这种类型的参数:

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

最佳答案

可能会发生这种情况,因为您从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。

09-27 06:23