我在printf
(特别是java.io.PrintWriter
)上调用多个arity函数System.out
时遇到问题。
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=>
答案 0 :(得分:3)
您的代码尝试调用printf(Object[] arg)
类的方法java.io.PrintStream
。但这种方法不存在。你希望像这样称呼printf(String format, Object ... args)
:
(.printf System/out "arg1: %s" (into-array Object ["foo"]))
=> #<PrintStream java.io.PrintStream@708e4544>
arg1: foo
此处#<PrintStream java.io.PrintStream@708e4544>
是从printf
返回的对象。