0

Clojure で lmdbjava を使おうとしていますが、苦労しています。

(import '[org.lmdbjava Env])
(def path (clojure.java.io/file "/tmp"))
(.open (.setMaxDbs (.setMapSize (Env/create) 10485760) 1) path)

(ps もっときれいな方法があることはわかっています。これはテスト目的のためだけです。)

これはエラーです:

IllegalArgumentException No matching method found: open for class java.lang.Class  clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:53)

私もこれを試しました:

(.open (.setMaxDbs (.setMapSize (Env/create) 10485760) 1) path org.lmdbjava.EnvFlags/MDB_NOLOCK)

この:

(.. (Env/create) (setMapSize 10485760) (setMaxDbs 1) (open path org.lmdbjava.EnvFlags/MDB_NOLOCK))

そして、私はこのエラーを受け取ります:

ClassCastException org.lmdbjava.EnvFlags (in module: Unnamed Module) cannot be cast to [Lorg.lmdbjava.EnvFlags; (in module: Unnamed Module)  user/eval1339 (form-init2868059116743223586.clj:1)

私はJavaとClojureの両方に慣れていないので、おそらく何かばかげたことをしていることに気づきました。どんな助けでも大歓迎です!

ちなみに、これは私がフォローしているチュートリアルです:

https://github.com/lmdbjava/lmdbjava/blob/master/src/test/java/org/lmdbjava/TutorialTest.java

ありがとう!

4

1 に答える 1