将 Java 类导入 Clojure

2022-09-02 21:04:20

尝试在 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))

> 无

这是最终目标:

1:10 exp2=> (defn 空格?[字符](.StringUtils (isEmpty character )))

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


答案 1

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

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

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

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

由于 StringUtils 中的函数是静态的,因此您需要使用以下代码:

(StringUtils/isEmpty character)

调用其函数


答案 2