Запись Clojure: как получить подсказку типа с учетом имя атрибута

Мне интересно, есть ли способ получить подсказку типа, связанную с атрибутами, объявленными с defrecord. например, если у меня есть следующее определение записи:

(defrecord Foo [^Integer id ^String description])

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

(->> record .getDeclaredFields (remove #(java.lang.reflect.Modifier/isStatic (.getModifiers #))))

Это дает мне список объявленных полей, но их типы - Object . Я знаю, что Clojure - динамический язык, но было бы неплохо, если бы типы возвращались мне, когда они мне нужны.

9
задан EnToutCas 21 February 2011 в 20:02
поделиться