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.01.0.10 都在 .m2 目录中。 class com/arangodb/velocypack/VPackParser$Builder.class 仅在版本 1.0.10.

中找到

将项目文件更改为 [com.arangodb/velocypack "1.0.10"] 后,导入工作正常。