【发布时间】:2011-07-10 16:42:54
【问题描述】:
Groovy 会自动生成 getter 和 setter,例如当我输入时:
int someField
我得到了字段 + getter + setter。现在我想在 setter 上添加注释(例如 GContracts 中的 @Requires/Ensures):
@Ensures({someField >= 0 && someField <= 100})
int someField
然后我得到错误:元素 FIELD 上不允许注释 groovy.lang.GrUnit - GrUnit 和 GContracts 仅识别方法上的注释。解决方法是显式编码 getter:
@Requires({...})
void setSomeField(int newValue) { ... }
有没有更好的解决方案?在 Scala 中有一个优雅的解决方案:http://www.scala-lang.org/api/current/scala/annotation/target/package.html
Groovy 中有类似的东西吗?或者:也许 GContracts 有一些解决方法来允许此类注释?
【问题讨论】:
标签: scala groovy annotations