检查 Vector 是否包含字符串总是失败

Check if a Vector contains a string always fails

在此代码段中:

s = ExtLibUtil.getCurrentSession();
Vector<String> groups = s.getUserGroupNameList();
if (debug) System.out.println("User groups are " + groups);
Boolean n = groups.contains("Notes_Admin");
if (debug) System.out.println("n = " + n);
if ( n ){
    if (debug) System.out.println("Groups Contains Notes_Admin");
}else{
    if (debug) System.out.println("Groups does not contain Notes_Admin");
}

n 的值总是 returns false,尽管我知道 Vector 组实际上确实包含值 "Notes_Admin"。我也试过 groups.indexOF("Notes_Admin") 它总是返回 -1。我猜我在那里某处错误定义了类型,但我已经尝试了所有我能想到的组合。 getUserGroupsNameList 表示它 returns 一个向量。

原因是 Session 的 getUserGroupNameList() 不是 return 字符串列表而是 lotus.domino.local.Name.

列表

将您的代码更改为

import lotus.domino.local.Name;
...
      Vector<Name> groups = s.getUserGroupNameList();
      System.out.println("User groups are " + groups);
      Boolean n = false;
      for (Name group : groups) {
          if (group.getCommon().equals("Notes_Admin")) {
              n = true;
              break;
          }
      }
      System.out.println("n = " + n);