Clojure导入嵌套类

时间:2017-09-24 13:26:35

标签: clojure inner-classes

我正在尝试为代码here

编写几个包装函数

它基本上具有

的形式(如示例页面中所示)
$

我知道要导入内部类,使用(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)))

我曾使用过一些类似的代码:

com/arangodb/velocypack/VPackParser$Builder.class

有什么想法吗?

查看jar文件确实显示

{{1}}

这只是反复试验吗?

1 个答案:

答案 0 :(得分:2)

回答我自己的问题。

使用lein deps时似乎下载了两个版本。即使项目文件中只有[com.arangodb/velocypack "1.0.0"]1.0.01.0.10都位于.m2目录中。课程com/arangodb/velocypack/VPackParser$Builder.class只能在版本1.0.10中找到。

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