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

时间:2015-02-03 03:09:02

标签: 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");
}

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

1 个答案:

答案 0 :(得分:5)

原因是会话的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);