当我评估(使用'hello)加载hello.clj时,REPL会抱怨以下错误:
java.io.FileNotFoundException: Could not locate hello__init.class or hello.clj on classpath: (NO_SOURCE_FILE:0)
Run Code Online (Sandbox Code Playgroud)
我正在调用这样的REPL:
java -cp "/Library/Java/Extensions/servlet-api-2.5-20081211.jar:... lots of jarfiles ...:/Library/Java/Extensions/clojure-contrib.jar:/Library/Java/Extensions/clojure-1.0.0.jar:./classes/:." jline.ConsoleRunner clojure.lang.Repl
Run Code Online (Sandbox Code Playgroud)
阅读,看起来这个文件在PWD中找不到,但我补充说.走向没有成功的道路:-(.
在OS X 10.6上运行Java 1.6.
我确定我是个白痴,有人可以用LART打我吗?
编辑:我也尝试了ClojureX发行版,并得到了相同的结果.
使用Java反射,可以获得构造函数getConstructor(klass, args).
但是,当我们作为args构造函数签名中指定的类的派生类传递时,它将失败.如何克服这个问题?
例如,
HashSet.class.getConstructor(new Class[]{ HashSet.class });
Run Code Online (Sandbox Code Playgroud)
失败.而
HashSet.class.getConstructor(new Class[]{ Collection.class });
Run Code Online (Sandbox Code Playgroud)
成功.
我正在寻找可以轻松使用的东西clojure.因此,我更喜欢开箱即用,而不必添加用户定义的功能.
任何想法,如何解决这个问题?