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

时间:2013-03-17 15:37:36

标签: scala macros scala-macros

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

An older stack-overflow question询问Scala的@BeanProperty的实现细节,“它是一个编译器插件,但宏也可能允许你这样做”。鉴于Scala 2.10中的官方(如果是实验性的)宏版本,现在可以使用这种功能吗?

1 个答案:

答案 0 :(得分:8)

更新:此答案已无效。见Eugenes评论。

不,现在还不可能。

在2.10中,只存在无法做任何可比较的def宏。对于2.11,世界变得更好,macro annotations并且已经存在对introduce members类的实现。但它们只有几周之久,因此仅适用于某些角落情况。此外,将成员引入类的实现与宏注释的实现不同,因此不可能将它们一起使用。