getAllEntriesByKey导致错误:Vector中未知或不受支持的对象类型

时间:2018-09-19 20:44:57

标签: java xpages lotus-notes

我在xp:messages控件中收到以下错误:

  

lotus.domino.local.View中的错误,第-2行:NotesException:未知或   Vector中不受支持的对象类型

它是在我的Java类中的以下代码中生成的:

View vw = db.getView(viewName);
if(null != vw){ 
ViewEntryCollection vec
-> vec = vw.getAllEntriesByKey(key);
}

键是此处提供的字符串。

有人对此有解释吗?

3 个答案:

答案 0 :(得分:3)

您是否检查了变量key是否不为null?如果提供的键参数为空,则会收到此错误消息。

答案 1 :(得分:2)

您传递的是字符串,而不是向量。您需要创建一个Vector,然后将其字符串添加为第一个元素,就像在SSJS中一样。

Vector vec = new Vector();
vec.add(key)
vw.getAllEntriesByKey(vec);

这是ODA的方法签名为getAllEntriesByKey(Object key)的原因之一,因此我们的抽象层为您完成了所有这些工作。另外,一旦获得结果,就可以使用标准Java循环来处理循环(for (ViewEntry ent : vec) {....}

答案 2 :(得分:0)

有两件事要考虑。首先是您的语法。代码应如下所示

View vw = db.getView(viewName);
if(null != vw){ 
    ViewEntryCollection vec = vw.getAllEntriesByKey(key);
    // do something with the vec
}

第二个是异常消息:

向量中未知或不受支持的对象类型。

文档here包含方法签名。您提到的key变量是一个字符串,因此该方法应该是您使用过的方法:

public ViewEntryCollection getAllEntriesByKey(Object key) throws NotesException

当您从代码中删除->时,它是否按预期工作?