Мне интересно, есть ли способ получить подсказку типа, связанную с атрибутами, объявленными с defrecord. например, если у меня есть следующее определение записи:
(defrecord Foo [^Integer id ^String description])
Я хотел бы получить карту типа Foo
, которая дает мне атрибуты и их подсказанные типы. Я знаю, что могу получить список объявленных атрибутов через отражение:
(->> record .getDeclaredFields (remove #(java.lang.reflect.Modifier/isStatic (.getModifiers #))))
Это дает мне список объявленных полей, но их типы - Object
. Я знаю, что Clojure - динамический язык, но было бы неплохо, если бы типы возвращались мне, когда они мне нужны.