将Java类导入Clojure

时间:2011-01-29 11:09:57

标签: java class import clojure

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

当然这很好用:

1:7 exp2=> (import '(java.io FileReader))
  

> java.io.FileReader

但这不是:

1:6 exp2=> (import '(org.apache.commons.lang.StringUtils))
  

>零

这是最终目标:

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

  

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

1 个答案:

答案 0 :(得分:27)

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

(import '(org.apache.commons.lang StringUtils SystemUtils))

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

(import 'org.apache.commons.lang.StringUtils)

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

(StringUtils/isEmpty character)

调用他们的功能