繁体   English   中英

Groovy 注释中的默认数组值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM