我想制作一个宏,当在类定义中使用时会创建一个字段,它是公共设置器和注释。但是,宏似乎没有扩展,主要是因为它在其他(类定义)宏中使用。
这是一个如何定义一个具有一个字段的类的示例:
(define-simple-class test-class ()
(foo :: java.util.List ))
我的宏(目前仅定义字段):
(define-syntax autowire
(syntax-rules ()
((autowire class id)
(id :: class))))
但是,如果我尝试使用它:
(define-simple-class test-class ()
(autowire java.util.List foo))
并通过反射查询新类的字段,我可以看到它创建了一个名为 的字段autowire
,并且foo
无处可见。看起来像宏扩展顺序的问题。