将Java类导入Clojure

use*_*883 16 java import class clojure

试图在java库之外导入一个没有结果的类.我在Eclipse Helios上逆时针运行.commons-land-2.6.jar位于buildpath中.我是Clojure的新手,无法解决这个问题.所有帮助非常感谢!

当然这很好用:

1:7 exp2=> (import '(java.io FileReader))
Run Code Online (Sandbox Code Playgroud)

> java.io.FileReader

但这不是:

1:6 exp2=> (import '(org.apache.commons.lang.StringUtils))
Run Code Online (Sandbox Code Playgroud)

>没有

这是最终目标:

1:10 exp2 =>(defn whitespace?[character](.StringUtils(isEmpty character)))

> java.lang.Exception:无法在此上下文中解析符号:StringUtils(repl-1:10)

Ale*_*Ott 27

你犯了一个错误 - 你没有在org.apache.commons.lang和StringUtils类之间放置空格.这种导入形式允许您从一个包中导入多个类,例如:

(import '(org.apache.commons.lang StringUtils SystemUtils))
Run Code Online (Sandbox Code Playgroud)

如果只想导入一个类,则可以使用不带括号的版本:

(import 'org.apache.commons.lang.StringUtils)
Run Code Online (Sandbox Code Playgroud)

并且因为StringUtils中的函数是静态的,所以您需要使用以下代码:

(StringUtils/isEmpty character)
Run Code Online (Sandbox Code Playgroud)

调用他们的功能