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