尝试在 java 库之外导入一个类,但没有结果。我在 Eclipse Helios 上逆时针运行。 commons-land-2.6.jar 在构建路径中。我是 Clojure 的新手,无法弄清楚这一点。非常感谢所有帮助!
自然这很好用:
1:7 exp2=> (import '(java.io FileReader))
> java.io.FileReader
但这不是:
1:6 exp2=> (import '(org.apache.commons.lang.StringUtils))
> nil
这是最终目标:
1:10 exp2=> (defn whitespace? [character] (.StringUtils (isEmpty character )))
> java.lang.Exception: Unable to resolve symbol: StringUtils in this context (repl-1:10)
最佳答案
您犯了一个错误 - 您没有在 org.apache.commons.lang 和 StringUtils 类之间放置空格。这种导入形式允许您从一个包中导入多个类,例如:
(import '(org.apache.commons.lang StringUtils SystemUtils))
如果你只想导入一个类,那么你可以使用不带括号的版本:
(import 'org.apache.commons.lang.StringUtils)
并且因为StringUtils中的函数是静态的,所以需要使用如下代码:
(StringUtils/isEmpty character)
调用它们的函数
关于java - 将 Java 类导入 Clojure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836531/