Я пытаюсь написать оболочку для API Google Adwords в Clojure, но борюсь с константами и интерфейсами. Java-код выглядит так:
CampaignServiceInterface campaignService =
user.getService(AdWordsService.V201109.CAMPAIGN_SERVICE);
Обычно вы можете вызывать константы в Clojure, например, с помощью (Математика/PI), но когда я пишу:
(def user (AdWordsUser. ))
(.getService user (AdWordsService/V201109/CAMPAIGN_SERVICE))
Я просто получаю «нет такого пространства имен». Также я немного не понимаю, как правильно реализовать интерфейс. Я думаю, что мне следует использовать «reify», но я застреваю.
Ссылка на интерфейс: http://google-api-adwords-java.googlecode.com/svn-history/r234/trunk/docs/com/google/api/adwords/v201003/cm/CampaignServiceInterface.html а>
(defn campaign-service [ ]
(reify
com.google.adwords.api.v201109.cm.CampaignServiceInterface
(get [this] ??))))