Clojure: вызов нескольких функций арности

У меня проблема с вызовом функции множественной арности printf для java.io.PrintWriter (в частности, 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=>

person pmf    schedule 31.10.2014    source источник


Ответы (1)


Ваш код пытается вызвать метод 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.

person hsestupin    schedule 31.10.2014