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

Bil*_*l F 1 java xpages

在此代码段中:

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");
}
Run Code Online (Sandbox Code Playgroud)

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

Knu*_*ann 5

原因是Session getUserGroupNameList()没有返回字符串列表而是返回列表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);
Run Code Online (Sandbox Code Playgroud)