[英]Default array value in Groovy annotation
我有枚举和注释,例如:
enum Permission { user, superuser, admin }
@CompileStatic
@interface Anno {
Permission[] value
}
现在我想为 value 提供一个默认value
,它应该是[ Permission.user ]
。
我尝试了不同的 groovy 技巧:
Permission[] value default [user]
Permission[] value default ([user] as Permission[])
Permission[] value default (Permission[])[user]
...
但它们都不起作用,因此作为一种解决方法,我在 j4v4 中实现了注释:
public @interface Anno {
Permission[] value default { user };
}
我错过了什么?
更新:
解决方案是从注释中删除@CompileStatic
。 使用@CompileStatic
编译抛出:
[静态类型检查] - 无法在返回类型 io.domain.Permission[] 的方法上返回类型 java.util.List <io.domain.Permission> 的值
这是一个当前的命名限制,应该删除,但现在您需要:
Permission[] value() default [Permission.user]
或在您使用user
之前:
import static Permission.user
然后您的原件(添加了缺少的括号)就可以了:
Permission[] value() default [user]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.