var lockHolders:java.util.Vector = document.getLockHolders()

返回当前锁持有者的列表。我需要解锁文档,如果lockHolders [0] == currentUser,这非常简单
但是,如果currentUser是多值列表中的名称之一,该如何处理

if (lockHolders[0] == currentUser){
     document.unlock();
}


我可以从lockHolders的Vector列表中删除currentUser,但是没有setLockHolders可以直接执行replaceItemValue(“ LockHolders”,lockHolders)吗?
我相信lockHolders通常将是单个值,并且不确定什么条件允许Vector中使用多个名称。

最佳答案

我希望lockHolder仅包含一个值。毕竟这就是锁的作用。但是,如果您想编写超级防御代码,请尝试以下操作:

 var lockHolders:java.util.Vector = document.getLockHolders();
 for (var curHolder in lockHolders) {
     if (curHolder.toString() === currenUser) {
        document.unlock();
        break;
     }
 }


Vector实际上返回一组对象,因此请确保使用.toString()。然后===(是-其中三个)进行比较而不尝试转换数据类型。如果Vector如预期的具有一个值,则循环运行一次。如果文档未锁定(Vector元素为空或为空,则无法回忆起),则循环不运行(如果Vector为空),或者运行一次,且比较结果为false。

那对你有用吗?

10-08 10:53