【发布时间】:2012-02-06 21:23:09
【问题描述】:
在Clojure中,如何使用存储在变量中的java类?
我应该如何修复以下代码?
(def a java.lang.String)
(new a "1"); CompilerException java.lang.IllegalArgumentException: Unable to resolve classname: a
为什么这个可以正常工作?
(def a str)
(a "1")
【问题讨论】:
-
我认为这之前已经出现过,并且确实出现过:参见 Clojure: creating new instance from String class name Chouser 的一个很好的回答,其中提到了
clojure.lang.Reflector/invokeConstructor和另一种方法,一种介于“静态+快速”之间的中间立场"和“动态+慢”(您可以称其为“非常动态+慢一次,静态+快”),这可能是您感兴趣的。
标签: clojure