在 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)
这对我有用。
我正在尝试使用 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)
这对我有用。