为什么字符串格式会导致转换异常?

Ari*_*Ari 5 clojure

为什么会(String/format "%8s" (Integer/toBinaryString 6))导致java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object转换异常?

Jon*_*eet 8

我不知道Clojure,但我怀疑它试图将该方法称为Java:

String.format("%8s", Integer.toBinaryString(6));
Run Code Online (Sandbox Code Playgroud)

没有 varargs的支持.我怀疑你想要:

(String/format "%8s" (into-array Object (Integer/toBinaryString 6)))
Run Code Online (Sandbox Code Playgroud)

这个邮件列表线程从人的详细信息,究竟是谁知道Clojure的:)

  • 是的,这正是问题所在.比使用`String/format`和`into-array`更好的解决方案是使用Clojure函数`format`,它采用Varargs Clojure风格,行为与`String/format`相同. (5认同)