0

在我的 java webagent 中,我创建了一个 Document 对象。例如 NotesDocument 文档 = ...; 后来我在这个对象上使用了 remove :

document.remove(true);

之后我想检查文档是否为空,因此通常在该文档上运行的任何功能都不会被执行

例如:

if(document != null){
System.out.println(document.getItemValueString("ID"));
}

它仍然进入 if 语句和它的说法:NotesException:对象已被删除或回收。

!= null 在这种情况下有效吗?

4

1 回答 1

1

您已经在此处的内存中创建了一个引用。

NotesDocument document = ...;

...

// Even you called document.remove(), it still exists because the code does not destroy the object and reference itself.

document.remove(true);

// That is why this still works.
if (document != null) {
    System.out.println(document.getItemValueString("ID"));
}

如果这是您指定要做的事情,您可以document = null;在调用后显式分配。remove()

或者

您可以检查文档的 isDeleted()。例如if (!document.isDeleted())

文档: https ://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/reference/r_domino_Document_IsDeleted.html

于 2018-12-12T16:20:44.480 回答