在 java class 中定义的 clojure 访问枚举

clojure access enum defined inside a java class

我正在尝试使用 argon-jvm 库在我的应用程序中进行哈希处理。

这个库默认使用Argon2i,但是我想使用Argon2id。为此,我需要将枚举值 Argon2Factory.Argon2Types.Argon2id 传递给 Argon2Factory class 中重载的 create 方法。 Argon2Factory.java here.

的源代码

从 lein repl(添加 [de.mkammerer/argon2-jvm "2.4"] 作为依赖项之后),我可以执行以下操作:

user=> (import 'de.mkammerer.argon2.Argon2Factory)
de.mkammerer.argon2.Argon2Factory
user=> (def argon2 (Argon2Factory/create))
#'user/argon2
user=> (def hashedPassword (.hash argon2 17 65536 1 "passwordToBeHashed"))
#'user/hashedPassword
user=> hashedPassword
"$argon2i$v=19$m=65536,t=17,p=1$zvr4dz+/mpNxj5MVMtBALAdbE49MKV3dDfMMswTtjlB+niOeryh4EmJWNd7lj3FI"

但是,我无法访问在 Argon2Factory class 本身中定义的 Argon2Types 枚举值(以传递给 Argon2Factory.create 方法)。有人可以帮我访问这个枚举吗?

PS: 在不同阶段的 repl 中自动完成:

user=> (de.mkammerer.argon2.
de.mkammerer.argon2.Argon2              de.mkammerer.argon2.Argon2Advanced      de.mkammerer.argon2.Argon2Constants     de.mkammerer.argon2.Argon2Factory
de.mkammerer.argon2.Argon2Helper        de.mkammerer.argon2.Argon2d             de.mkammerer.argon2.Argon2i             de.mkammerer.argon2.Argon2id
de.mkammerer.argon2.BaseArgon2          de.mkammerer.argon2.jna.Argon2Library   de.mkammerer.argon2.jna.Argon2_type     de.mkammerer.argon2.jna.JnaUint32
de.mkammerer.argon2.jna.Size_t
user=> (de.mkammerer.argon2.Argon2Factory/create
de.mkammerer.argon2.Argon2Factory/create           de.mkammerer.argon2.Argon2Factory/createAdvanced

PPS:我将向这个项目提交一个拉取请求,其中包含在其自己的 .java 文件中定义的 Argon2Types 枚举,但与此同时,我仍然想知道如果可以访问此类枚举)

在 REPL 中,尝试:

(import 'de.mkammerer.argon2.Argon2Factory$Argon2Types)

这对我有用。