Как импортировать класс Java в ClojureScript?

Я использую REPL браузера ClojureScript в SublimeText, и в него включены определенные методы Java:

(.toUpperCase "blub") --> "BLUB"

Однако я хотел бы использовать .toBinaryString, но java.lang.Integer не включен, и я не знаю, как его импортировать. (import %) не работает независимо от того, какой формат я использую для %; всегда выдает:

не может прочитать свойство «вызов» неопределенного

Мой вопрос состоит из двух частей; как я могу увидеть, какие библиотеки Java включены в REPL, и как мне использовать другие библиотеки, которые не включены?


person Phylth    schedule 10.02.2015    source источник


Ответы (1)


ClojureScript компилируется в JavaScript, метод toUpperCase, который вы вызвали, исходит из JavaScript String, а не из Java. Единственный случай, когда вы можете использовать Java в ClojureScript, — это когда вы пишете макрос. Но это потому, что макросы написаны на Clojure, а не на ClojureScript.

Это список различий между Clojure и ClojureScript.

person Rodrigo Taboada    schedule 10.02.2015
comment
Я прочитал это и несколько статей о взаимодействии cljs-js, но всякий раз, когда я пытаюсь использовать библиотеку js (в данном случае prototype.js для функции toString), я получаю сообщение об ошибке. Это после включения предложения :libs и :foreign-libs в мой файл project.clj и требования его в пространстве имен. Я этого не понимаю. - person Phylth; 10.02.2015
comment
Пожалуйста, создайте еще один вопрос об этой проблеме или выполните поиск в stackoverflow. Ваш первоначальный вопрос был о взаимодействии Java, не так ли? - person Rodrigo Taboada; 11.02.2015