Импорт классов Java в Clojure - PullRequest
16 голосов
/ 29 января 2011

Попытка импортировать класс за пределы 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 => (определить пробел? [Символ] (. StringUtils (isEmpty символ)))

> java.lang.Exception: невозможно разрешить символ: StringUtils в этом контексте (repl-1: 10)

1 Ответ

27 голосов
/ 29 января 2011

Вы допустили одну ошибку - вы не поместили пробел между org.apache.commons.lang и классом StringUtils.Эта форма импорта позволяет импортировать несколько классов из одного пакета, например:

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

, если вы хотите импортировать только один класс, вы можете использовать версию без скобок:

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

И поскольку функции в StringUtils являются статическими, вам необходимо использовать следующий код:

(StringUtils/isEmpty character)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...