我的代码有点问题,如下所示。 iterator().hasNext()
永远不会变为false,因为next()
函数始终返回相同的元素。它以无限循环结束。
我想在集合中的每个元素中设置属性UserLock(从GetElements()
返回)。
如果元素的类型是" Package",我将使用lockAllElements函数的递归调用锁定包下的所有元素。
private void lockAllElements(String internalGUID) {
Element tempElem = null;
while((repo.GetPackageByGuid(internalGUID).GetElements().iterator().hasNext()) == true) {
tempElem = repo.GetPackageByGuid(internalGUID).GetElements().iterator().next();
if(tempElem.GetType().equals("Package")) {
this.lockAllElements(tempElem.GetElementGUID());
}
tempElem.ApplyUserLock();
}
}
答案 0 :(得分:1)
继续@Eran的回答......我有时更喜欢for
循环:
for (Iterator<Element> iter = repo.GetPackageByGuid(internalGUID).GetElements().iterator(); it.hasNext(); ) {
tempElem = iter.next();
}