2014-10-31 36 views
1

我有一个调用java.io.PrintWriter(具体来说,System.out)上的多重函数printf的问题。Clojure:调用多个函数功能

user=> (.printf System/out (into-array Object ["foo"])) 
IllegalArgumentException No matching method found: printf for class java.io.PrintStream 
clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:53) 
user=> 

回答

3

你的代码试图调用java.io.PrintStream类的方法printf(Object[] arg)。但是这种方法不存在。 Propably您要拨打这一个printf(String format, Object ... args)这样的:

(.printf System/out "arg1: %s" (into-array Object ["foo"])) 
=> #<PrintStream [email protected]> 
arg1: foo 

这里#<PrintStream [email protected]>是一个对象从printf返回。