我有一个获取这种类型参数的方法:
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
答案 0 :(得分:1)
可能会发生,因为您从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
解决此问题的方法是:-