我可以在clojure中使用(.toUpperCase"GOOD"),因为"GOOD"是java字符串,而java字符串具有toUpperCase方法.
我也可以使用clojure中的(java.io.File/separator)作为调用java函数的方法.
但是,为什么我不能调用(java.lang/Object wait 3)或(java.lang.System/println"hi")?
mik*_*era 18
您可以使用Clojure中的所有Java函数.查看Clojure Java互操作的精彩页面.
特别是,你只需要根据你正在处理的Java构造类型来获得正确的语法,例如在java.lang.System上对静态成员"out"执行println方法:
(.println (System/out) "hi")
Run Code Online (Sandbox Code Playgroud)
正如早先的海报所指出的那样,你给出的两个例子只是一点点:
(.wait (java.lang.Object.) 3) ;; this actually throws an IllegalMonitorStateException
(.println java.lang.System/out "hi")
Run Code Online (Sandbox Code Playgroud)
应该管用!