Я пытаюсь написать макрос, который вызовет java setter методы, основанные на аргументах, данных ему.Динамический вызов метода в макросе Clojure?
Так, например:
(my-macro login-as-fred {"Username" "fred" "Password" "wilma"})
может расширяться на что-то вроде следующего:
(doto (new MyClass)
(.setUsername "fred")
(.setPassword "wilma"))
Как бы вы рекомендовать решать это?
В частности, у меня возникли проблемы с разработкой наилучшего способа построения имени метода setter и интерпретации его как символа макросом.
Вы действительно хотите назвать 'doto' с классом в качестве первого аргумента? Вы собираетесь делать вещи самому объекту класса, а не экземпляру этого класса. –
Ах, спасибо - это была опечатка. Я исправил это сейчас. – npad