Импорт классов 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)
для вызова своих функций