在此代码段中:
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。
答案 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);