Clojure Can';无法识别javax.imageio.imageio的读取方法?

Clojure Can';无法识别javax.imageio.imageio的读取方法?,clojure,Clojure,我得到: (ns pdf-try.core (:use clj-pdf.core)

我得到:

(ns pdf-try.core                                                                                                                            
  (:use clj-pdf.core)                                                                                                                       
  (:require clojure.java.io))                                                                                                               


(defn gen-pdf []                                                                                                                            
 (let [superman (javax.imageio.ImageIO/read "sample_logos/batman.jpeg")                                                                     
       batman (javax.imageio.ImageIO/read  "sample_logos/superman.jpeg")]                                                                   
   (println (new java.util.Date))                                                                                                           
   (pdf [{}  (for [i (range 80000)]                                                                                                         
               (do  [:paragraph                                                                                                             
                   [:image  superman]                                                                                                       
                   [:image batman]]))] "super.pdf")                                                                                         
   (println (new java.util.Date))))                                                                                                         


(defn -main                                                                                                                                 
  "I don't do a whole lot."                                                                                                                 
  [& args]                                                                                                                                  
  (println  "Hello, World!")                                                                                                                
  (gen-pdf))  

因为类中没有接受字符串作为参数的静态读取方法。使用该路径创建一个文件,并将该文件作为参数传递

 Exception in thread "main" java.lang.IllegalArgumentException: No matching method found: read                                                                                                                              
 What am I missing here ?                

而且,您错误地从Clojure调用Java类构造函数。您需要使用like
(Classname.args*)
从Clojure调用Java类构造函数。有关详细信息,请查看

Oh。。!我看到了这个。这就是为什么我没有怀疑!我刚刚发现我把蝙蝠侠的形象和超人的不匹配!粉丝们会生气的@AmoghtalPalikar和,纠正了您的一些错误实际上
(new java.util.Date)
是完全正确的。事实上,在宏扩展过程中,
(java.util.Date.)将重写到该代码。不过,使用虚线形式确实更为惯用。(从某种意义上说,这是人们在相似的上下文中倾向于使用的。
new
在用户代码中仍然经常使用,因为它比宏中的“拖尾点”方便得多。)至于它的价值,我不同意使用点形式而不是
new
更惯用。总之,
new
既易于阅读(比单词末尾的一个小点更突出),又不会在编译器级别将符号名称与其用途混为一谈。@NathanDavis:否决投票的原因是什么?
(defn gen-pdf []                                                                                                                            
 (let [superman (javax.imageio.ImageIO/read "sample_logos/batman.jpeg")                                                                     
       batman (javax.imageio.ImageIO/read  (java.io.File. "sample_logos/superman.jpeg"))]                                                                   
   (println (java.util.Date.))                                                                                                           
   (pdf [{}  (for [i (range 80000)]                                                                                                         
               (do  [:paragraph                                                                                                             
                   [:image  superman]                                                                                                       
                   [:image batman]]))] "super.pdf")                                                                                         
   (println (java.util.Date.))))