我正在尝试使用Apache Commons Codec库在Clojure中解码base64字符串。

我可以在库中使用以下方法:

(ns decode.core
  (:import (org.apache.commons.codec.binary Base64 Hex))
  (:gen-class))

(.encode (Hex.) "s")
(.decode (Hex.) "0a")
(.decode (Base64.) "s")


但是当我尝试像decodeBase64这样使用(.decodeBase64 (Base64.) "s")时,我得到了

IllegalArgumentException No matching method found: decodeBase64 for class
org.apache.commons.codec.binary.Base64  clojure.lang.Reflector.invokeMatchingMethod
(Reflector.java:53)


我究竟做错了什么?好像我应该可以呼叫decodeBase64一样,就像我可以呼叫decode一样?

最佳答案

decodeBase64是静态Java方法。这是您在Clojure中的称呼方式:

 (import '[org.apache.commons.codec.binary Base64 Hex])
 (Base64/decodeBase64 "s")

09-26 11:47