2016-05-12 43 views
0

如果我正在查看从StatementResult中提取的记录,那么确定特定值类型的正确方法是什么?我知道Neo会尝试为我强制类型,但如果我想知道,例如,如果某个节点是什么?有一个可以调用的typeOf()方法,但我看不到要传递给该方法的Value的位置。例如,在下面的片段中,我如何确定键所持有的值的类型?如何在使用Neo4j 3.x BOLT驱动程序时确定记录值的类型?

StatementResult statementResult = session.run(cypher,paramMap); 
Record record = single(); 
record.get('key').type().isTypeOf() 

回答

0

我认为Stefan的回答是完全有效的,但是它会将你的代码绑定到协议的v1。

我会使用内部命名空间,以保持它在进一步的版本工作,为如:

import static org.neo4j.driver.internal.types.InternalTypeSystem.TYPE_SYSTEM; 

if (record.get("key").hasType(TYPE_SYSTEM.NODE()) { 
    // it is a node 
} 

从我可以在驱动程序测试中看到,这是相同的用法:

https://github.com/neo4j/neo4j-java-driver/blob/1.1/driver/src/test/java/org/neo4j/driver/v1/types/TypeSystemTest.java#L210

+0

谢谢,但我总是很紧张使用任何标记为内部的东西 –

相关问题