java.lang.Class 在日期捕获和字符串格式化时无法转换为 clojure.lang.IFn

java.lang.Class cannot be cast to clojure.lang.IFn when date capturing and string formatting

我并没有真正看出哪里出了问题,特别是因为我偶然发现了一个允许这样做的小变化,但无法解释它为什么起作用。还请从更全面的意义上告诉我,当您遇到将 Java class 转换为 Clojure 接口函数 (IFn) 的问题时,通常会出现什么问题,以及如何调试它。谢谢。

(defn date
  []
  (new java.util.Date))

(defn x
  []
  (.format(java.text.SimpleDateFormat "YYYY-MM-DD")(new java.util.Date)))

SimpleDateFormat的最后添加一个.。现在,您将 class 作为函数调用,因此出现了异常。在末尾加一个点使其实例化。

您可以对 (new java.util.Date) 执行相同的操作 - 它可以替换为 (java.util.Date.)