我有一个方法得到这种类型的参数: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。