给出以下查询:
CREATE (versionNode:Version {previousVersions: [4,3,2,1]})
RETURN versionNode.previousVersions AS versions
我怎样才能得到Collection<Long>
来自ExecutionResult
?据我所知,Node#getProperty()
方法只能返回原始类型,所以我不能使用它。可能吗?
最佳答案
我找到了解决方案。这段代码让我意识到了这一点:
String cypher = "CREATE (versionNode:Version {previousVersions: [4,3,2,1]}) " +
"RETURN versionNode.previousVersions AS versions";
ExecutionResult result = new ExecutionEngine(db).execute(cypher);
System.out.println(result.iterator().next().get("versions").getClass());
这输出了奇怪的符号:
class [J
根据 Java 文档 Class#getName()
这意味着返回的对象类型是一个原始long
数组。
现在我可以这样做并将我的号码返回到集合中:
Collection<Long> versionsCollection = new ArrayList<>();
long[] versions = (long[]) result.iterator().next().get("versions");
for (long v : versions) {
versionsCollection.add(v);
}
关于java - 如何从 Java 中的 ExecutionResult 中提取集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911911/