Clojure 导入嵌套 类
Clojure importing nested classes
我正在尝试为代码编写几个包装函数 here
它基本上具有
的形式(如示例页面中所示)
String json = ...
VPackParser parser = new VPackParser.Builder().build();
VPackSlice slice = parser.fromJson(json);
我知道要导入内部 类 一个使用 $
,但以下每个组合似乎都不起作用。
(ns the.pain.is.real
(:require [clojure.reflect :as r])
(:import
com.arangodb.velocypack.VPackBuilder ;; fine
com.arangodb.velocypack.VPackSlice ;; fine
com.arangodb.velocypack.VPackParser ;; fine
com.arangodb.velocypack.VPack ;; fine
com.arangodb.velocypack.VPackParser$Builder ;; nope
))
我刚刚得到一个Unhandled java.lang.ClassNotFoundException
。
我曾使用过一些类似的代码,我曾使用过这些代码:
(ns winning
(:import com.arangodb.ArangoDB$Builder))
(.build (-> (new ArangoDB$Builder)
(.host "127.0.0.1" 8529)
(.user username)
(.password password)))
有什么想法吗?
查看 jar 文件确实显示
com/arangodb/velocypack/VPackParser$Builder.class
只是反复试验吗?
回答我自己的问题。
使用 lein deps
时似乎下载了两个版本。尽管项目文件中只有 [com.arangodb/velocypack "1.0.0"]
,但 1.0.0
和 1.0.10
都在 .m2
目录中。 class com/arangodb/velocypack/VPackParser$Builder.class
仅在版本 1.0.10
.
中找到
将项目文件更改为 [com.arangodb/velocypack "1.0.10"]
后,导入工作正常。
我正在尝试为代码编写几个包装函数 here
它基本上具有
的形式(如示例页面中所示)String json = ...
VPackParser parser = new VPackParser.Builder().build();
VPackSlice slice = parser.fromJson(json);
我知道要导入内部 类 一个使用 $
,但以下每个组合似乎都不起作用。
(ns the.pain.is.real
(:require [clojure.reflect :as r])
(:import
com.arangodb.velocypack.VPackBuilder ;; fine
com.arangodb.velocypack.VPackSlice ;; fine
com.arangodb.velocypack.VPackParser ;; fine
com.arangodb.velocypack.VPack ;; fine
com.arangodb.velocypack.VPackParser$Builder ;; nope
))
我刚刚得到一个Unhandled java.lang.ClassNotFoundException
。
我曾使用过一些类似的代码,我曾使用过这些代码:
(ns winning
(:import com.arangodb.ArangoDB$Builder))
(.build (-> (new ArangoDB$Builder)
(.host "127.0.0.1" 8529)
(.user username)
(.password password)))
有什么想法吗?
查看 jar 文件确实显示
com/arangodb/velocypack/VPackParser$Builder.class
只是反复试验吗?
回答我自己的问题。
使用 lein deps
时似乎下载了两个版本。尽管项目文件中只有 [com.arangodb/velocypack "1.0.0"]
,但 1.0.0
和 1.0.10
都在 .m2
目录中。 class com/arangodb/velocypack/VPackParser$Builder.class
仅在版本 1.0.10
.
将项目文件更改为 [com.arangodb/velocypack "1.0.10"]
后,导入工作正常。