2

在 sparql jena 中执行查询后,我尝试将查询结果作为列表获取,所以我使用了这个:

res = ResultSetFormatter.toList(results);    

但是当我在该方法之前编写此方法时,变量res返回null。

ResultSetFormatter.out(System.out, results);
res = ResultSetFormatter.toList(results);    

我不知道是什么问题。

4

2 回答 2

3

主要ResultSet实现是com.hp.hpl.jena.sparql.engine.ResultSetStream只能使用一次,而您尝试使用它两次。API文档ResultSetStream说:

从查询返回结果的主要 ResultSet 实现。这个版本是“使用一次”——你不能重置结果集,因为查询的结果不会被记住,以免消耗潜在的大量内存。

于 2012-05-16T22:01:23.223 回答
2

猜测一下,我会说ResultSetFormatter.out(ResultSet)消耗ResultSet. 所以这个方法完成后,ResultSet是空的。

它有点类似于 an 的Iterator工作方式:一旦迭代了所有元素,迭代器就为空。

于 2012-05-16T21:14:55.937 回答