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、1 回しか使用できないものですが、2 回使用しようとしています。のAPIドキュメントResultSetStreamは次のように書かれています:

クエリから結果を返すためのメインの ResultSet 実装。このバージョンは「1 回のみ使用」です。大量のメモリを消費しないようにクエリの結果が記憶されないため、結果セットをリセットすることはできません。

于 2012-05-16T22:01:23.223 に答える
2

At a guess, I'd say ResultSetFormatter.out(ResultSet) consumes the ResultSet. So after this method has completed, ResultSet is empty.

It's somewhat comparable to how an Iterator works: once you've iterated over all the elements, the iterator is empty.

于 2012-05-16T21:14:55.937 に答える