Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在MarkLogic中,如果EvaluResultIterator未使用或包含空序列,是否应关闭它?_Java_Java 8_Xquery_Marklogic_Marklogic 10 - Fatal编程技术网

Java 在MarkLogic中,如果EvaluResultIterator未使用或包含空序列,是否应关闭它?

Java 在MarkLogic中,如果EvaluResultIterator未使用或包含空序列,是否应关闭它?,java,java-8,xquery,marklogic,marklogic-10,Java,Java 8,Xquery,Marklogic,Marklogic 10,我使用MarkLogic中的JavaAPI来评估XQuery。有时,这些XQuery不返回任何内容(空序列),或者不使用结果 根据文档(): 注意:EvalResulterator必须关闭。如果调用eval(),不要忘记对返回的evalResulterator调用close(),以释放底层资源 当然,当您使用资源进行一次空的尝试时,这看起来不是很好 try (EvalResultIterator eval = invoker.eval()) { // No result is retur

我使用MarkLogic中的JavaAPI来评估XQuery。有时,这些XQuery不返回任何内容(空序列),或者不使用结果

根据文档():

注意:EvalResulterator必须关闭。如果调用eval(),不要忘记对返回的evalResulterator调用close(),以释放底层资源

当然,当您使用资源进行一次空的尝试时,这看起来不是很好

try (EvalResultIterator eval = invoker.eval()) {
    // No result is returned    
}

在这种情况下,确实需要关闭evalResulterator吗?最好的方法是什么?

只需调用
invoker.eval().close()
。如果
invoker.eval()
抛出异常,则不会返回任何
evalResulterator
,因此无需担心
最终会出现
块。

只需调用
invoker.eval().close()
。如果
invoker.eval()
抛出异常,则不会返回任何
evalResulterator
关闭,因此无需担心
最后出现的
块。

“返回空”和“结果未使用”是两种截然不同的情况。如果您确定只评估副作用,为什么不在评估过程中调用
invoker.eval().close()
。因此,我希望确保资源已关闭。如果引发异常,则不会返回任何
evalResulterator
来关闭。这可能是正确的答案。如果你发布它,我会接受它。“返回空”和“结果未使用”是两种完全不同的情况。如果您确定只评估副作用,为什么不在评估过程中调用
invoker.eval().close()
。因此,我希望确保资源已关闭。如果引发异常,则不会返回任何
evalResulterator
来关闭。这可能是正确的答案。如果你把它寄出去,我会接受的。