Импорт классов Java в Clojure

Попытка импортировать класс за пределами java-библиотеки без результата. Я бегу против часовой стрелки на Eclipse Helios. Земля общего пользования 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: невозможно разрешить символ: 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)

для вызова своих функций