检查 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);
在此代码段中:
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);