【发布时间】:2013-12-05 14:36:47
【问题描述】:
我正在尝试使用 App Engine 删除我的数据库中的一些文件并进行对象化。这是我有异常的一段代码:
for(SottoCategoria sc: lsc){
List<Key<Dispensa>> ld2=sc.getDispense();
if(ld2!=null){
for(Key<Dispensa> kd : ld2){ // <---- Exception!!
if(kd.equals(k)){
sc.removeDispensa(k);
ofy().save().entity(sc).now();
break;
}
}
}
}
这是从列表中删除的方法:
public void removeDispensa(Key<Dispensa> k ){
Iterator<Key<Dispensa>> kIter = dispense.iterator();
while(kIter.hasNext()) {
Key<Dispensa> kk = kIter.next();
System.out.println(kk.equals(k));
if(kk.equals(k)){
kIter.remove();
break;
}
}
}
我该如何解决?谢谢!
编辑:
我解决了在循环中插入一个简单的中断,因为在 Sottocategoria 中只能是我想要删除的一种分配!
【问题讨论】:
-
在
for(Key<Dispensa> kd : ld2){,在第一个代码中,为什么需要那个循环? -
因为我有许多 Dispensa 项目的子类别。因此,如果我需要删除一个项目 Dispensa,我必须为每个子类别循环每个项目 Dispensa 列表。
-
我认为在这两种情况下循环都在同一个列表上。
-
Nono.. 但在其他项目中,我认为您使用迭代器来解决此类问题。我说的对吗?
标签: java google-app-engine objectify