我想创建一个注释或特征,它在编译时动态地根据现有字段向对象添加方法。虽然我对类级别的东西感兴趣,但我也会使用字段级注释(或其他更细粒度的东西)。
An older stack-overflow question询问Scala的@BeanProperty
的实现细节,“它是一个编译器插件,但宏也可能允许你这样做”。鉴于Scala 2.10中的官方(如果是实验性的)宏版本,现在可以使用这种功能吗?
答案 0 :(得分:8)
更新:此答案已无效。见Eugenes评论。
不,现在还不可能。
在2.10中,只存在无法做任何可比较的def宏。对于2.11,世界变得更好,macro annotations并且已经存在对introduce members类的实现。但它们只有几周之久,因此仅适用于某些角落情况。此外,将成员引入类的实现与宏注释的实现不同,因此不可能将它们一起使用。