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

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


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


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


View vw = db.getView(viewName);

if(null != vw){ 

ViewEntryCollection vec

-> vec = vw.getAllEntriesByKey(key);

}

关键是这里提供的字符串。


有人对此有解释吗?



一只名叫tom的猫
浏览 191回答 3
3回答

慕慕森

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

ABOUTYOU

你传入的是一个字符串,而不是一个向量。您需要创建一个 Vector,然后将您的字符串作为第一个元素添加到其中,就像在 SSJS 中一样。Vector vec = new Vector();vec.add(key)vw.getAllEntriesByKey(vec);这是 ODA 的方法签名是 的原因之一getAllEntriesByKey(Object key),所以我们的抽象层会为您完成所有工作。另外,一旦得到结果,就可以使用标准 Java 循环来处理循环 ( for (ViewEntry ent : vec) {....})

心有法竹

有两件事需要考虑。首先是你的语法。代码应该如下View vw = db.getView(viewName);if(null != vw){     ViewEntryCollection vec = vw.getAllEntriesByKey(key);    // do something with the vec}第二个是异常信息:向量中未知或不受支持的对象类型。此处的文档具有方法签名。key您提到的变量是一个字符串,因此该方法应该是您使用过的方法:public ViewEntryCollection getAllEntriesByKey(Object key) throws NotesException当您从代码中删除 -> 时,它是否按预期工作?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java