Как я могу вызвать статический метод Java в clojure? - PullRequest
29 голосов
/ 24 марта 2011

Я хочу назвать класс по классу String. Как я могу получить доступ к этому статическому методу?

Ответы [ 4 ]

43 голосов
/ 24 марта 2011

Вы можете вызывать статический метод, используя (ClassName/methodName arguments).

Однако class - это не статический метод, это ключевое слово java, и он не нужен в clojure.Чтобы получить объект Class, связанный с классом String, просто используйте String.

16 голосов
/ 24 марта 2011

Пример стоит 100 слов:

(. String (valueOf 1))
6 голосов
/ 24 марта 2011

У класса нет ни метода "class", ни члена "class".Символ String сопоставляется с классом java.lang.String, если то, что вы хотите получить, эквивалентно Java String.class.Если вы хотите вызвать статический метод класса String, используйте синтаксис (String/methodName arg1 arg2).

5 голосов
/ 25 марта 2011

Я думаю, что на ваш вопрос ответили, но если вы действительно хотите получить класс неизвестного объекта, вы можете использовать функцию класса:

> (class "Foo")
java.lang.String

Как и в Java, чтобы указать классыза пределами java.lang как литералов вам необходимо либо импортировать их, либо указать полный пакет + имя класса с помощью разделителей точек (.).

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