在 sparql jena 中执行查询后,我尝试将查询结果作为列表获取,所以我使用了这个:
res = ResultSetFormatter.toList(results);
但是当我在该方法之前编写此方法时,变量res
返回null。
ResultSetFormatter.out(System.out, results);
res = ResultSetFormatter.toList(results);
我不知道是什么问题。
主要ResultSet
实现是com.hp.hpl.jena.sparql.engine.ResultSetStream
只能使用一次,而您尝试使用它两次。API文档ResultSetStream
说:
从查询返回结果的主要 ResultSet 实现。这个版本是“使用一次”——你不能重置结果集,因为查询的结果不会被记住,以免消耗潜在的大量内存。
猜测一下,我会说ResultSetFormatter.out(ResultSet)
消耗ResultSet
. 所以这个方法完成后,ResultSet
是空的。
它有点类似于 an 的Iterator
工作方式:一旦迭代了所有元素,迭代器就为空。