Attempting to run neo4j tutorial, get error: error: no suitable method found for run(String,Map<String,List>)
Attempting to run neo4j tutorial, get error: error: no suitable method found for run(String,Map<String,List>)
我正在学习如何使用 Neo4j。我访问了他们的网站 saw one of their tutorials。在该网站上,如果向下滚动,您会看到他们的 "Test-Drive Neo4j with Cypher" 部分,默认部分 ("Social") 有一个 "Friends of Friends" 示例。此外,他们还有一些代码示例。我点击了 "Java" 并看到了 Social.java
程序的示例。他们的指示分为四个部分:
- 下载 Neo4j 驱动程序(他们提供 link,我下载了那个 JAR)
- 将代码复制并粘贴到
Social.java
- 用
javac -cp neo4j-java-driver-1.0.0.jar Social.java
编译
- 运行 与
java -cp neo4j-java-driver-1.0.0.jar:. Social
不幸的是,步骤 (3) 失败了。尝试编译后,出现以下错误:
javac -cp neo4j-java-driver-1.0.0.jar Social.java Social.java:25: error: no suitable method found for run(String,Map<String,List>)
session.run(insertQuery,singletonMap("pairs",data)).consume();
^
method StatementRunner.run(Statement) is not applicable
(actual and formal argument lists differ in length)
method StatementRunner.run(String) is not applicable
(actual and formal argument lists differ in length)
method StatementRunner.run(String,Record) is not applicable
(actual argument Map<String,List> cannot be converted to Record by method invocation conversion)
method StatementRunner.run(String,Map<String,Object>) is not applicable
(actual argument Map<String,List> cannot be converted to Map<String,Object> by method invocation conversion)
method StatementRunner.run(String,Value) is not applicable
(actual argument Map<String,List> cannot be converted to Value by method invocation conversion) 1 error
我不确定如何修复它,因为我不知道 run
方法的详细信息,并且我认为由于这是一个包含四个简单步骤的教程,所以所有阶段都应该有效正确。如果重要的话,我的 javac
版本是 1.7。
有什么明显的我遗漏的东西吗?
感谢您报告此问题,它看起来像是示例中的一个错误。您可以自己创建一个 hashmap 而不是使用导致问题的 singletonMap :
Map<String, Object> parameters = new HashMap<>();
parameters.put("pairs", data);
session.run(insertQuery,parameters).consume();
在他们使用的代码中:
session.run(insertQuery,singletonMap("pairs",data)).consume();
将其替换为:
Map<String, Object> parameters = new HashMap<>();
parameters.put("pairs", data);
session.run(insertQuery,parameters).consume();
我正在学习如何使用 Neo4j。我访问了他们的网站 saw one of their tutorials。在该网站上,如果向下滚动,您会看到他们的 "Test-Drive Neo4j with Cypher" 部分,默认部分 ("Social") 有一个 "Friends of Friends" 示例。此外,他们还有一些代码示例。我点击了 "Java" 并看到了 Social.java
程序的示例。他们的指示分为四个部分:
- 下载 Neo4j 驱动程序(他们提供 link,我下载了那个 JAR)
- 将代码复制并粘贴到
Social.java
- 用
javac -cp neo4j-java-driver-1.0.0.jar Social.java
编译
- 运行 与
java -cp neo4j-java-driver-1.0.0.jar:. Social
不幸的是,步骤 (3) 失败了。尝试编译后,出现以下错误:
javac -cp neo4j-java-driver-1.0.0.jar Social.java Social.java:25: error: no suitable method found for run(String,Map<String,List>)
session.run(insertQuery,singletonMap("pairs",data)).consume();
^
method StatementRunner.run(Statement) is not applicable
(actual and formal argument lists differ in length)
method StatementRunner.run(String) is not applicable
(actual and formal argument lists differ in length)
method StatementRunner.run(String,Record) is not applicable
(actual argument Map<String,List> cannot be converted to Record by method invocation conversion)
method StatementRunner.run(String,Map<String,Object>) is not applicable
(actual argument Map<String,List> cannot be converted to Map<String,Object> by method invocation conversion)
method StatementRunner.run(String,Value) is not applicable
(actual argument Map<String,List> cannot be converted to Value by method invocation conversion) 1 error
我不确定如何修复它,因为我不知道 run
方法的详细信息,并且我认为由于这是一个包含四个简单步骤的教程,所以所有阶段都应该有效正确。如果重要的话,我的 javac
版本是 1.7。
有什么明显的我遗漏的东西吗?
感谢您报告此问题,它看起来像是示例中的一个错误。您可以自己创建一个 hashmap 而不是使用导致问题的 singletonMap :
Map<String, Object> parameters = new HashMap<>();
parameters.put("pairs", data);
session.run(insertQuery,parameters).consume();
在他们使用的代码中:
session.run(insertQuery,singletonMap("pairs",data)).consume();
将其替换为:
Map<String, Object> parameters = new HashMap<>();
parameters.put("pairs", data);
session.run(insertQuery,parameters).consume();