是否有可能使用宏来实现类似于Scala的@BeanProperty的东西?

ryb*_*ome 7 macros scala scala-macros

我想创建一个注释或特征,在编译时动态地根据现有字段向对象添加方法.虽然我对类级别的东西很感兴趣,但我也会使用字段级注释(或其他更细粒度的东西).

一个较旧的堆栈溢出问题询问了Scala的实现细节,@BeanProperty回答说:"它是一个编译器插件,但宏也可能允许你这样做".鉴于Scala 2.10中的官方(如果是实验性的)宏版本,现在这种功能是否可行?

kir*_*uku 8

更新:此答案不再有效.见欧格尼斯评论.

不,这还不可能.

在2.10中,只存在无法做任何可比较的def宏.对于2.11,世界会好一点,宏注释将成员引入类的实现已经存在.但它们只有几周之久,因此仅适用于某些角落情况.此外,将成员引入类的实现生活在与宏注释的实现不同的分支中,因此还不可能将它们一起使用.