我正在尝试使用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")